leetcode 209. Minimum Size Subarray Sum-子序列最小长度|双指针|二分查找

原题链接:209. Minimum Size Subarray Sum 【思路1-Java】 双指针 用双指针——fast 和 slow实现,用 sum 记录子序列的和, 1. 如果 sum 2. 如果 sum >= s,那么更新 minLen 长度,minLen=Math.min(fas...

2016-06-13 22:14:10

阅读数:638

评论数:0

leetcode 131. Palindrome Partitioning-回溯算法

原题链接:131. Palindrome Partitioning 【思路-Java】递归实现 本题采用回溯算法实现。 1. 最外层循环 public class Solution { public List> partition(String s) { List&g...

2016-06-13 17:24:13

阅读数:1932

评论数:0

leetcode 50. Pow(x, n)-细说边界问题

原题链接:50. Pow(x, n) 【思路-Java】递归实现 采用递归实现,那么本题的终止条件是 n == 0 和 n == 1。这里不采用下面的做法: public class Solution { public double myPow(double x, int n) { ...

2016-06-13 11:26:49

阅读数:3751

评论数:0

leetcode 40. Combination Sum II-回溯算法

原题链接:40. Combination Sum II 【思路-Java】递归实现 本题是 leetcode 39. Combination Sum-回溯算法|递归|非递归 的延伸,本题中给定的数组元素有重复。对于[1,1,2],如果还是采用原先的处理,结果集中肯定会有重复的元素出现,那么怎么...

2016-06-13 09:16:40

阅读数:610

评论数:0

leetcode 47. Permutations II-排列|回溯算法

原题链接:47. Permutations II 【思路1-Java】 这题是leetcode 46. Permutations-全排列|回溯|递归|非递归思路1延伸,每次交换 nums 中的两个元素,新生成一种新的组合,将该组合放入中间集,再放入结果集中,对于重复元素的处理,这里采用 set...

2016-06-12 15:11:12

阅读数:2550

评论数:0

leetcode 55. Jump Game-贪心算法

原题链接:55. Jump Game 【思路-Java】贪心算法 本题采用贪心算法。 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来最好的选择。也就是说,不从整体最优上加以考虑,他所作出的是在某种意义上的局部最优解。贪心算法和动态规划算法都是由局部最优导出全局最优,这里不得...

2016-06-11 16:28:26

阅读数:2889

评论数:0

leetcode 113. Path Sum II-路径和|回溯算法

原题链接:113. Path Sum II 【思路】 采用回溯算法。回溯算法要求我们准备一个中间集 temp,一个结果集 res。这里和以往题目递归中包含循环,循环中嵌套递归的不同。本题没有包含循环。 递归遍历过程中,往中间集当中添加节点值,遍历结束的条件为 root 的左右节点均为空,即到叶...

2016-06-11 15:35:35

阅读数:1259

评论数:0

leetcode 264. Ugly Number II-丑数|动态规划

原题链接:264. Ugly Number II 【思路】 该题考查动态规划。一个因子是2,3,5中的一个,另一个因子在 uglys 数组中,该因子下标存储在 ids 数组中: public class Solution { public int nthUglyNumber(int n) ...

2016-06-11 14:41:41

阅读数:1735

评论数:0

leetcode 236. Lowest Common Ancestor of a Binary Tree-二叉树共同祖先|深度遍历|递归|非递归

原题链接:236. Lowest Common Ancestor of a Binary Tree 【思路-Java】dfs|递归实现 本题是二叉树的深度遍历的典型应用,基础还是二叉树的遍历。 以根节点为起点,往左右分支上寻找,如果找到了 p 或 q 节点,则返回该节点。否则,继续向叶子节点...

2016-06-11 11:44:37

阅读数:1010

评论数:0

leetcode 95. Unique Binary Search Trees II-分治算法|动态规划|卡特兰数

原题链接:95. Unique Binary Search Trees II 【思路】 这是一道经典的分治算法题目,相比回溯算法,虽然都是递归中包含循环,循环中嵌套递归。但是,分治算法会利用到前面相互独立的子问题的中间结果,并将子问题层层串接在一起。最外层循环,将子问题划分为和为 n 的两个子问题...

2016-06-11 09:24:55

阅读数:1807

评论数:0

leetcode Combination Sum III-回溯|递归

原题链接:Combination Sum III 【思路】-递归实现 public class Solution { public List> combinationSum3(int k, int n) { List> res = new ArrayList...

2016-06-09 15:50:47

阅读数:441

评论数:0

leetcode 330. Patching Array-数组补丁|贪心算法

原题链接:330. Patching Array 【思路】贪心法 public class Solution { public int minPatches(int[] nums, int n) { int patchCount = 0, i = 0; ...

2016-06-09 15:37:17

阅读数:985

评论数:0

leetcode 147. Insertion Sort List-链表插入排序

原题链接:147. Insertion Sort List 【思路-Java】 插入排序 public class Solution { public ListNode insertionSortList(ListNode head) { ListNode dummyH...

2016-06-09 10:36:40

阅读数:1924

评论数:0

leetcode 109. Convert Sorted List to Binary Search Tree-链表转树|指针|二分归并

原题链接:109. Convert Sorted List to Binary Search Tree 【思路-Java】二分归并|递归实现 模仿二分归并的思想实现 public class Solution { public TreeNode sortedListToBST(ListNo...

2016-06-08 17:12:40

阅读数:452

评论数:0

leetcode 114. Flatten Binary Tree to Linked List-二叉树变链表|指针

原题链接:114. Flatten Binary Tree to Linked List 【思路】 当节点的左子树不为空时,将左子树放在节点的右边,并将节点的左边置为空,将右子树放在左子树的最右边。依次向右边遍历。 public class Solution { public void f...

2016-06-07 22:07:28

阅读数:2126

评论数:0

leetcode 78. Subsets-数组子集|回溯算法

原题链接:78. Subsets 【思路1-Java】回溯算法|递归实现 本解法采用回溯算法实现,回溯算法的基本形式是“递归+循环”,正因为循环中嵌套着递归,递归中包含循环,这才使得回溯比一般的递归和单纯的循环更难理解,其实我们熟悉了它的基本形式,就会觉得这样的算法难度也不是很大。原数组中的每个元...

2016-06-07 17:04:45

阅读数:8030

评论数:3

leetcode 81. Search in Rotated Sorted Array II-旋转数组|二分查找

原题链接:81. Search in Rotated Sorted Array II 【思路-Java、Python】 二分查找实现 本题采用二分法实现,但是比较挠头的是边界问题,而且元素有重复,相比纯粹递增的数组难度要大得多,要解决这个问题,首先要对所有可能情况进行分类,然后对每种可能的类别...

2016-06-07 11:34:23

阅读数:2194

评论数:0

leetcode 275. H-Index II-h因子|二分查找

原题链接:275. H-Index II 【思路-Java、Python】 二分查找 T=O(logn)|M=O(1) 本题是基于 leetcode 274. H-Index-h因子|哈希表,如果对于 h-index 概念不是很理解的可以参考这篇博文。 本题采用二分查找进行 public ...

2016-06-06 15:51:50

阅读数:1119

评论数:0

leetcode 274. H-Index-h因子|哈希表

原题链接:274. H-Index 【思路】 public class Solution { public int hIndex(int[] citations) { Arrays.sort(citations); int level = 0; ...

2016-06-06 13:46:22

阅读数:1684

评论数:0

leetcode 162. Find Peak Element-查找峰元素|二分查找

原题链接:162. Find Peak Element 【思路-Java、Python】 二分查找 题目中已经说明,最左端和最右端元素均无限小,中间元素比两侧都要大,那么本题中一定存在一个峰元素。所以不管中间有多少波峰,只要找到峰元素,我们只需找到刚刚开始下降而未下降的位置。采用二分查找,查出...

2016-06-05 16:47:54

阅读数:2633

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭