
binary search
文章平均质量分 68
bsbcarter
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode-First Bad Version
二分查找 但是要看清楚left right每次fuzhi的时候是否要加一 left要加一 因为是找bad 那mid不是bad的时候 它就没用了 但是假如它是bad 也要考虑 所以right 不需要减一 !!!整数超界问题 用(left + right )/2 可能加法超界 left/2 + right/2 不会超。 public class Solution extends Ve原创 2015-09-17 07:50:35 · 293 阅读 · 0 评论 -
*LeetCode-Find Peak Element
brute force每个和后面的数字比 找到不增长的那个 o(n) public class Solution { public int findPeakElement(int[] nums) { if ( nums == null || nums.length < 2) return 0; for ( int i = 0; i原创 2015-09-19 04:12:56 · 263 阅读 · 0 评论 -
LeetCode-Sqrt(x)
用二分查找,或者牛顿迭代 二分的话记得head设置成1而不是0,记得判断要用mid> x/ mid 而不要用mid * mid>x 因为乘法可能overflow max int public class Solution { public int sqrt(int x) { if ( x <= 0) return 0; int h原创 2015-03-11 00:36:29 · 400 阅读 · 0 评论 -
*LeetCode-Search in Rotated Sorted Array
思路就是首先找到pivot 也就是最小的那个数 然后就可以通过pivot来矫正head tail mid的真正位置 从而可以进行正常的binary search了 找pivot的时候就是一个二分查找 每次用mid 和 tail比较 但是注意挪动head 或者tail的时候的细节 假如mid 然后第二遍search的时候 注意公式 realHead = head + pivot rea原创 2015-09-22 03:39:53 · 268 阅读 · 0 评论 -
*LeetCode-Search in Rotated Sorted Array II
占坑原创 2015-09-22 06:46:44 · 325 阅读 · 0 评论 -
*LeetCode-Find Minimum in Rotated Sorted Array
可以o(n)扫一遍 找到不比前一个大的数字 lgn的方法是 binary search 通过判断head tail mid的大小关系判断pivot在哪一段 public class Solution { public int findMin(int[] nums) { int head = 0; int tail = nums.length - 1;原创 2015-11-02 01:15:05 · 237 阅读 · 0 评论 -
*LeetCode-Smallest Rectangle Enclosing Black Pixels
常规做法dfs bfs O(mn) bfs需要新建一个class存坐标 dfs不用存 更简便一点 记得每次访问过1后要给他设置成0 public class Solution { int minX = Integer.MAX_VALUE, maxX = 0, minY = Integer.MAX_VALUE, maxY = 0; public int minArea(char[原创 2015-11-25 01:58:36 · 565 阅读 · 0 评论 -
*LeetCode-Find the Duplicate Number
binary search但是search的是 在 start-end之中 有多少数小于mid 假如有多于mid个数字 说明start-mid之中有dup。else dup在mid + 1到end之中 public class Solution { public int findDuplicate(int[] nums) { int start = 1;原创 2015-10-06 08:12:03 · 302 阅读 · 0 评论