随笔分类 - 二分法
摘要:本题求两个数组求中位数,并且要求Log复杂度,那么必然用到二分法,我们就要考虑怎么比较; 1. 本题使用求两数组中第k小元素的辅助函数,使得,sumLens=7 时返回 get_k(4) , sumLens=8 时返回 get_k(4) ,get_k(5) ,由此可知,目前为止我们对于get_k的传
阅读全文
摘要:本题与154题相同,重做一遍还是有细节问题 思路: 1. 本题需要找最小数字,在本升序数组中,需想通最小数字就是旋转点 2. 接着就是二分法 1) left,right = 0 , len(nums)-1 2) mid = left + (right-left)//2 这种写法是防止 (right+
阅读全文
摘要:本题注意: 1. 33.旋转数组中,二分搜索都是将 nums[left] < nums[mid] 与 nums[left] == nums[mid] 两种合并,这里分开了 二分查找: 1. 判断左边升序还是右边升序时, 应该比较 nums[left] ? nums[mid],而不是 nums[0]
阅读全文
摘要:本题是普通二分法 + 定位重点坐标 1. left ,right = 0, m*n-1 注意右边坐标需要-1 2. while left <=right: 注意要取等号,以防target在left=right时候取到 3. left = mid +1 ; right = mid -1 由于已经判断过
阅读全文
摘要:注意: 1. python中二分法取中点方法: mid = l + ( r - l ) // 2 2. 递归的时候,一定要包括中点 a) 旋转点在左边,则递归 (l,mid) b) 旋转点在右边,则递归(mid+1,r) 3. 递归的过程中,一定要设置返回值 res = helper(l,r) 不能
阅读全文
摘要:时隔半年再次尝试这题,当时做的太复杂 二分法注意细节: 1. 左右端点初始化时,右端点记得-1 l,r = 0, len(nums)-1 2. 二分查找结束的判断条件,记得加等号 while l <= r: 3. mid 的 赋值 mid = l + (r-l)//2 或者 mid = (l+r)
阅读全文
摘要:本题解法照抄王尼玛的解答 https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/solution/duo-tu-yan-shi-34-zai-pai-xu-shu-zu-zho
阅读全文
摘要:思路: 1. 暴力法加些限制条件 1) row<3 or col<3 2) matrix[ i ][ j ] > target: break 3) matirx[ i ][ 0 ] > target: return False 2. 二分法(binary_search) : 1) 判断循环进行条件:
阅读全文
摘要:https://leetcode-cn.com/problems/find-the-duplicate-number/ 简单思路: 1. return sum( nums ) - n*(n+1)/2 2. set() if num in set: return num 用set 3. nums.so
阅读全文

浙公网安备 33010602011771号