
算法题
北冥有渔
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode二分查找
1、找一个准确值 循环条件:l<=r 缩减搜索空间:l=mid+1,r=mid-1 2、找一个数第一次出现的位置,最后一次出现的位置 第一次出现的位置: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 · 376 阅读 · 0 评论 -
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 · 204 阅读 · 0 评论 -
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 · 255 阅读 · 0 评论 -
leetcode-回溯算法
回溯算法的框架: result = [] def backtrack(路径, 选择列表): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 backtrack(路径, 选择列表) 撤销选择 46.全排列 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 class Solution { public List<Lis原创 2020-06-08 21:03:28 · 194 阅读 · 0 评论 -
leetcode刷题总结
leetcode算法总结 最长回文子串 44. 通配符匹配 给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。 ‘?’ 可以匹配任何单个字符。 ‘*’ 可以匹配任意字符串(包括空字符串)。 解题思路; 1、想到用双指针,但是不好判断*到底匹配多少个字符串,放弃 2、跟前面第十题一样用递归????(搞不清楚什么情况下该用递归) 3、动态规划: 状态 dp[i][j] : 表示 s 的前 i 个字符和 p 的前 j 个字符是否匹配 (true 的话表示匹配) 状态转原创 2020-05-23 23:07:30 · 460 阅读 · 0 评论