二分法
一杯小熊
这个作者很懒,什么都没留下…
展开
-
常见的排序算法以及二分法模板
冒泡排序、选择排序、快速排序、归并排序以及二分法模板arr = [7,2,3,1,5,4,6]print(arr)def bubbleSort(arr): n = len(arr) isSort = True for i in range(n-1): for j in range(n-1-i): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], ar原创 2021-07-17 22:08:08 · 109 阅读 · 1 评论 -
借助LeetCode287 寻找重复数,关于二分算法的一些思考
代码实现:class Solution: def findDuplicate(self, nums: List[int]) -> int: i, j = 1, len(nums)-1 while i < j: #因为j = mid为条件,因此这里i不能等于j,否则会一直循环下去 mid = (i + j) // 2 c = 0 for num in nums: ...原创 2021-04-15 23:02:52 · 102 阅读 · 0 评论 -
剑指Offer 53 在排序树组中统计数字出现次数
class Solution: def search(self, nums: List[int], target: int) -> int: def helper(nums, target): i, j = 0, len(nums)-1 while i <= j: mid = (i + j) // 2 if target >= nums[mid]...原创 2021-03-09 11:23:51 · 58 阅读 · 0 评论 -
Leetcode.No.153/154 寻找螺旋排序树组中的最小值
注意:数组中无重复二分法关键:1. while循环条件为left < right 而不是left <= right2. 右边界收缩条件为mid = right 而不是mid = right - 1class Solution: def findMin(self, nums: List[int]) -> int: left, right = 0, len(nums)-1 while left < right: ..原创 2021-02-28 13:54:15 · 51 阅读 · 0 评论 -
LeetCode.No.33 搜索螺旋排序数组
使用二分法class Solution: def search(self, nums: List[int], target: int) -> int: left, right = 0, len(nums) - 1 while left <= right: mid = (left + right) // 2 if nums[mid] == target: return ..原创 2021-01-26 16:22:28 · 152 阅读 · 0 评论