704. 二分查找

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

  1. class Solution {
  2. public int search(int[] nums, int target) {
  3. if(nums==null||nums.length==0){
  4. return -1;
  5. }
  6. int start=0;
  7. int end=nums.length-1;
  8. //int mid=end/2;
  9. while(start<=end){
  10. int mid=(start+end)/2;
  11. if(nums[mid]==target){
  12. return mid;
  13. }
  14. if(nums[mid]>target){
  15. end=mid-1;
  16. }
  17. if(nums[mid]<target){
  18. start=mid+1;
  19. }
  20. }
  21. return -1;
  22. }
  23. }

复杂度:logN,1