Leetcode35. Search Insert Position
这题比较简单,应该可以直接想到改良二分查找,跳过暴力解法了。
class Solution { public int searchInsert(int[] nums, int target) { int s = 0,e = nums.length-1; int m = -1; while(s<=e){ m = (s+e)/2; if(target==nums[m]){ return m; } else if(target<nums[m]){ e=m-1; } else{ s=m+1; } } if(nums[m]>target) return m; else return m+1; } }
唯一值得说的:
最后,如果while循环没有返回,则没有找到,那么最终m的位置要么比target大要么小,但都会是最接近的那个。所以只需做个大小判断,然后输出对应的index即可。
2-3ms 100%-68.91%.可以了。

浙公网安备 33010602011771号