LeetCode编程
WhiteRooms
这个作者很懒,什么都没留下…
展开
-
贪心算法
剑指offer剪绳子参考代码:public class Solution { public int cutRope(int target) { if(target<=0) return 0; int[] result = new int[target+1]; if(target==1 || target==2) return 1; if(target==3) return 2; result[1] = 1;原创 2020-06-21 12:28:17 · 92 阅读 · 0 评论 -
二分查找模板
返回mid的二分查找模板:int binary_search(int[] nums,int target){ int left = 0,right = nums.length-1; while(left<=right){ int mid = left+(right-left)/2; if(nums[mid] == target) return mid; else if(nums[mid] > target){ right = mid - 1; 从右端向mid逼近原创 2020-05-30 21:33:41 · 349 阅读 · 0 评论 -
子序列模板
涉及子序列的动态规划问题通常可以通过这样的方式计算使用一维dp:int n = arr.length;int[] dp = new int[n];for(int i=1;i<n;i++){ for(int j=0;j<i;j++){ dp[i] = 最值(dp[i],dp[j]...); }}使用二维dp:int n = arr.length;int[][] dp = new int[n][n];for(int i=1;i<n;i++){ for(int原创 2020-05-29 11:45:02 · 104 阅读 · 0 评论 -
回溯法框架结构
for 选择 in 选择列表: # 做选择 将该选择从选择列表移除 路径.add(选择) backtrack(路径, 选择列表) # 撤销选择 路径.remove(选择) 将该选择再加入选择列表练习1:练习1链接首先需要建立函数backtrack然后在函数backtrack中,进行选择,选择的范围,像一个指针,调用backtrack,再尝试变成上一个状态练习2:练习2链接练习3:练习3链接...原创 2020-05-28 15:31:53 · 327 阅读 · 0 评论 -
滑动窗口模板
滑动窗口的模板int left = 0,right = 0;while(right<s.length){ window.add(s[right]); right++; //什么时候需要滑动窗口呢? while(满足条件){ window.remove(s[left]); left++; }}练习1:习题1地址练习2:习题2地址习题3:习题3地址...原创 2020-05-27 17:48:14 · 745 阅读 · 0 评论