数据结构与算法
文章平均质量分 63
Wilson-mz
这个作者很懒,什么都没留下…
展开
-
253. Meeting Rooms II-贪婪
253. Meeting Rooms II-贪婪题目思路贪婪贪婪适用代码题目题目链接给定一系列会议的开始结束时间: [[s1,e1],[s2,e2],…] (si < ei), 求需要的最小会议室个数。输入: [[0, 30],[5, 10],[15, 20]]输出: 2输入: [[7,10],[2,4]]输出: 1思路贪婪定义在每一步中都采取在当前状态下最好或最优的选择,从而希望导致结果最好或最优的算法优点对一些问题,非常直观有效缺点总是做出在当前看来是最好的选择原创 2021-10-27 09:12:33 · 154 阅读 · 0 评论 -
34. Find First and Last Position of Element in Sorted Array-二分搜索
34. Find First and Last Position of Element in Sorted Array-二分搜索题目思路代码题目题目链接思路根据二分搜索模板,只需要修改一下条件即可判断往哪边搜索判断是否刚好满足条件代码class Solution: def searchRange(self, nums: List[int], target: int) -> List[int]: low = 0 high = len(nums)原创 2021-10-25 20:21:16 · 76 阅读 · 0 评论 -
33.Search in Rotated Sorted Array-旋转排序数组-二分搜索
33.Search in Rotated Sorted Array-旋转排序数组-二分搜索题目思路代码题目题目链接思路根据二分搜索模板,只需要修改一下条件即可判断往哪边搜索判断哪边已经排好序代码class Solution: def search(self, nums: List[int], target: int) -> int: low = 0 high = len(nums) - 1 return self.binary原创 2021-10-25 20:16:58 · 96 阅读 · 0 评论 -
二分搜索模板--Python
二分搜索模板--Python二分法核心点递归写法非递归写法题型1.找确定的边界,如leetcode 34模糊的边界leetcode33旋转排序数组的搜索不定长的边界二分法核心点确定搜索的范围和区间取中间的数判断是否满足条件如果不满足条件,判定应该往哪个半边继续搜索递归写法def binary_search_recursive(nums, target, low, high): """ 在nums的low到high下标的闭区间中搜索target :param nums:原创 2021-10-25 20:08:43 · 120 阅读 · 0 评论 -
动态规划小结/NP/01背包分析
动态规划小结普通的线性规划和区间规划里,一般题目有两种需求:非决定性多项式(NP)时间复杂度01背包普通的线性规划和区间规划里,一般题目有两种需求:统计最优解约束规划对输出结果添加条件–如01背包题目链接非决定性多项式(NP)Non-deterministic Polynomial,不能在多项式时间复杂度内解决时间复杂度程序运行时间随着问题规模扩大的增长有多快非多项式时间复杂度指数级,如O(2n)\mathcal{O}(2^n)O(2n),O(3n)\mathcal{O}(原创 2021-10-25 19:46:12 · 160 阅读 · 0 评论 -
516.Longest Palindromic Subsequence-最长回文子序列-区间规划
516.Longest Palindromic Subsequence-最长回文子序列-区间规划题目思路初始化状态复杂度代码题目题目链接思路动态规划,二维表记录两个下标段间最长的回文子序列长度,然后不断扩大至整个序列当首尾的两个字符相等时,直接将这两个字符加入:dp[0][n−1]=dp[1][n−2]+2dp[0][n-1] = dp[1][n-2] + 2dp[0][n−1]=dp[1][n−2]+2不相等时,二选一:dp[0][n−1]=max(dp[1][n−1],dp[0][n−2原创 2021-10-25 19:27:58 · 132 阅读 · 0 评论 -
递归和迭代在图遍历中的对比-栈结构
递归和迭代对比-栈结构递归和迭代对比-栈结构递归和迭代总结一下递归和迭代对比-栈结构做了两道图遍历相关的题,分别是Leetcode230. Kth Smallest Element in a BST,Leetcode785. Is Graph Bipartite?,这两道都可以用递归和迭代两种方法来处理,然后有了一些细究下去的想法为防止以后找不到,把思考的结论单独开一篇放在这里递归和迭代递归和迭代好像总是如影相随,细想一想:递归的实现,也是借助于栈,只不过在程序中不可见,栈中保存的是当前节点的所原创 2021-04-05 13:56:54 · 159 阅读 · 0 评论