arts-2019-07-07

Algorithm 算法题

每周至少做一个leetcode 的算法题

https://leetcode-cn.com/problems/longest-increasing-subsequence/

我的思路是建一个辅助结构,复杂度O(n**2),不是最佳解法

定义一个辅助类,一个哨兵节点root = Node(float('inf')),从后往前遍历nums,调用root.append得到对应的高度,最大的高度即为所求。

class Node(object):
    def __init__(self, val):
        self.val = val
        self.next = []
    
    def append(self, v):
        if v >= self.val:
            return 0
        if not self.next or v > self.next[-1].val:
            self.next.append(Node(v))
            return 1
        mx = 0
        for node in self.next:
            h = node.append(v)
            if h > mx:
                mx = h
        return mx + 1

Review 外国文章

阅读并点评至少一篇英文技术文章

https://docs.djangoproject.com/en/2.2/topics/db/transactions/

具体的在 Django 事务总结中看吧。

Technique 技巧总结

学习至少一个技术技巧

Django 事务总结. todo. 待单抽出一篇来

Share 思考分享

至少分享一篇有观点和思考的技术文章

https://mp.weixin.qq.com/s/UHrJ-6ruC_HkhUXvWvDX0A
你写的代码是别人的噩梦吗?从领域建模的必要性谈起

比如做业务开发,感觉很容易用过程式写法,if-else 叠加。建议按领域建模的方法做重构。

2019-07-08 00:13 42
Comments
Write a Comment