| public class SearchInsertPosition { /** * @param args */ public static void main(String[] args) { SearchInsertPosition sip = new SearchInsertPosition(); int[] nums1 = new int[] {1, 3, 5,6}; System.out.println(sip.searchInsert(nums1, 5)); int[] nums2 = new int[] {1}; System.out.println(sip.searchInsert(nums2, 0)); int[] nums3 = new int[] {1, 3, 5,6}; System.out.println(sip.searchInsertLogN(nums3, 2)); } //nums = [1,3,5,6], target = 5,输出2 //nums = [1], target = 0,输出0 public int searchInsert(int[] nums, int target) { int insertIndex = 0; for (int i = 0; i < nums.length; i++) { if (target < nums[i]) { return i; }else if(target == nums[i]) { return i; }else if(target> nums[i]) { insertIndex++; } } return insertIndex; } //nums = [1,3,6], target = 5,输出2 public int searchInsertLogN(int[] nums, int target) { int left = 0; //注意:-1 int right=nums.length-1; //注意:<= while(left<=right) { int mid = (left+right)/2; if(nums[mid] == target) { return mid; }else if(nums[mid] < target) { left=mid+1; }else { right=mid-1; } } return left; } } |