- 博客(5)
- 收藏
- 关注
原创 leetcode二分查找
1、找一个准确值循环条件:l<=r缩减搜索空间:l=mid+1,r=mid-12、找一个数第一次出现的位置,最后一次出现的位置第一次出现的位置:12223循环条件:l<r。为了防止出现死循环。缩减搜索空间:l=mid+1,r=mid。找到了2,但是并不知道它是不是最左边的元素,所以要保留这个数r=mid,并且把搜索区间向左移动。如果nums[mid]<k,那么就说明一定在右边的区间,所以l=mid+1。最后一次出现的位置:12223循环条件:l<r。为了防.
2020-06-17 22:36:53
363
原创 leetcode 动态规划
62. 不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?思路:动态规划:ij位置上的路径数量等于,左边格子的路径数量加上上面格子的路径数量。动态方程:dp[i][j] = dp[i-1][j] + dp[i][j-1]边界:dp[0][j]=1,dp[i][0]=1优化:空间复杂度:O(mn)空间复杂度:O(2n)i
2020-06-16 10:43:26
195
原创 leetcode每日一题
keep住呀6.9面试题46. 把数字翻译成字符串给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。1.递归法(没写对。。。)这个是到达数组的尾部就算结束,所以返回1,算一种,如果sum大于10且小于25,那么就有两种情况,否则就一种。class Solution { public int translateN
2020-06-09 11:21:17
244
原创 leetcode-回溯算法
回溯算法的框架:result = []def backtrack(路径, 选择列表): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 backtrack(路径, 选择列表) 撤销选择46.全排列给定一个 没有重复 数字的序列,返回其所有可能的全排列。class Solution { public List<Lis
2020-06-08 21:03:28
180
原创 leetcode刷题总结
leetcode算法总结最长回文子串44. 通配符匹配给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。解题思路;1、想到用双指针,但是不好判断*到底匹配多少个字符串,放弃2、跟前面第十题一样用递归????(搞不清楚什么情况下该用递归)3、动态规划:状态 dp[i][j] : 表示 s 的前 i 个字符和 p 的前 j 个字符是否匹配 (true 的话表示匹配)状态转
2020-05-23 23:07:30
444
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人