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

  • Post author:
  • Post category:其他


给定一个

n

个元素有序的(升序)整型数组

nums

和一个目标值

target

,写一个函数搜索

nums

中的

target

,如果目标值存在返回下标,否则返回

-1




示例 1:


输入:


nums

= [-1,0,3,5,9,12],

target

= 9


输出:

4


解释:

9 出现在

nums

中并且下标为 4


示例 2:


输入:


nums

= [-1,0,3,5,9,12],

target

= 2


输出:

-1


解释:

2 不存在

nums

中因此返回 -1

public class lianxi {
	public static void main(String[] args) {
		Solution S = new Solution();
		int[] nums = new int[] {-1,0,3,5,9,12};
		int target = 9;
		int a = S.search(nums, target);
		System.out.println(a);
		
	}
}

class Solution {
    public int search(int[] nums, int target) {
        int i = 0;
        int len = nums.length - 1;
        while(i <= len){
             int mid = (i +len) / 2;
            if(nums[mid] == target){
                return mid;
            }
            else if(nums[mid] > target){
                len = mid - 1;
            }
            else{
                i = mid +1;
            }
        }
        return -1;
    }
}



版权声明:本文为be_gin_ner原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。