![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
opencvzsefv
这个作者很懒,什么都没留下…
展开
-
第一章:动态规划和回溯算法到底谁是谁爹?
labuladong动态规划和回溯算法到底谁是谁爹?494. 目标和方法1:动态规划(dp二维数组)dp[i][j]表示 数组中前i个元素组成和为j的方案数base case:首先初始化数组第0行。如果第一个元素为0,则dp[0][total]=2(-0 和+0 都为0,所以先初始化为2) 比如 [0,1,2], 目标和为3,则有-0+1+2=3,+0+1+2=3否则和为±nums[0] 的位置的方案数置为1 if nums[0]==0:原创 2020-07-30 11:19:09 · 219 阅读 · 0 评论 -
Python实现的经典排序算法
来源:Python 实现的十大经典排序算法选择排序对每一个nums[i], 寻找 range(i,n) 范围内比nums[i]大的数,并与之交换以此类推,位置 i 处就是 第i 小的数两次for循环,时间复杂度为 O(n2)O(n^2)O(n2)def selection_sort(nums): n = len(nums) for i in range(n): for j in range(i, n): if nums[i] >原创 2020-07-22 18:29:12 · 114 阅读 · 0 评论 -
搜索旋转排序数组系列
153. 寻找旋转排序数组中的最小值二分查找过程中,比较mid与right(而非left)的原因:以 [1,2,3,4,5,6,7] 为例,分以下情况若[1,2,3,4,5,6,7] 左<中,中<右。最小值在最左边, 所以更新 右指针若[6,7,1,2,3,4,5] 左>中,中<右。最小值在mid左边,所以更新 右指针若[4,5,6,7,1,2,3] 左<中,中>右。最小值在mid右边,所以更新 左指针可见,当中<右时(情况1,2),都是更新原创 2020-07-18 19:22:13 · 70 阅读 · 0 评论 -
第四章:如何判断回文链表
labuladong如何判断回文链表方法1:链表转列表,双指针逼近将链表转化为列表,然后利用左右双指针技巧,从两端到中间逼近# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solution(object): def isPalindrome(sel原创 2020-07-14 10:24:43 · 121 阅读 · 0 评论