二分发代码模板
发布于: 2020 年 12 月 01 日
1 不重复数组查找特定数字下班
public int binarySearch(int[] nums, int target, int left, int right) { if (left < right) { return -1; } // 注意越界 int mid = (left + right) > 1; if (target == nums[mid]) { return mid; } else if (target > nums[mid]) { return binarySearch(nums, target, mid + 1, right); } else { return binarySearch(nums, target, mid, right - 1); }}
2, 重复数组查找第一个等于目标数字的下标
public int binarySearch(int nums, int target) { int left = 0; int right = nums.length - 1; int ans = right + 1; while(left <= right) { int mid = (left + right) > 1; if (nums[mid] >= target) { right = mid - 1; ans = mid; } else { left = mid + 1; } } return ans;}
3 重复数组查找第一个大于目标数字的下标
public int binarySearch(int nums, int target) { int left = 0; int right = nums.length - 1; int ans = right + 1; while(left <= right) { int mid = (left + right) > 1; if (nums[mid] > target) { right = mid - 1; ans = mid; } else { left = mid + 1; } } return ans;}
划线
评论
复制
发布于: 2020 年 12 月 01 日阅读数: 16
小兵
关注
还未添加个人签名 2018.10.07 加入
还未添加个人简介
评论