其他分享
首页 > 其他分享> > 2022-4-19 二分查找

2022-4-19 二分查找

作者:互联网

704. 二分查找

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1

 1 class Solution {
 2     public int search(int[] nums, int target) {
 3         int l=0,r=nums.length;
 4         while (l<r){
 5             int mid=(l+r)/2;
 6             if (nums[mid]==target){
 7                 return mid;
 8             }else if (nums[mid]>target){
 9                 r=mid;
10             }else {
11                 l=mid+1;
12             }
13         }
14         return -1;
15     }
16 }

思路:简单的二分查找基本写法。

35. 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

 1 class Solution {
 2     public int searchInsert(int[] nums, int target) {
 3         int l=0,r=nums.length;
 4         while (l<r){
 5             int mid=(l+r)/2;
 6             if (nums[mid]==target) return mid;
 7             else if (nums[mid]>target) {
 8                 r=mid;
 9             }else {
10                 l=mid+1;
11             }
12         }
13         return l;
14     }
15 }

思路:跟左边界的搜索方法类似。

标签:二分,target,nums,19,mid,数组,int,2022,目标值
来源: https://www.cnblogs.com/benbicao/p/16164730.html