做了35显然704是简单的…或许是因为二分法开局是这样的..慢慢来啦
实际是704我的答案错了一次…
直接上二分法…开始培养好的代码风格吧…
以下为错误代码:
class Solution {
public int search(int[] nums, int target) {
int low = 0,high = nums.length-1;
while (low < high) {
int mid = (low + high) / 2;
if (nums[mid] == target) {
return mid;
}
if (nums[mid] < target) {
++low;
}
else {
--high;
}
}
return -1;
}
}
33/47的样例
输入[5] 5的时候理应返回0,而我是-1
改的方法就是一个地方:while (low <= high)
最后代码
class Solution {
public int search(int[] nums, int target) {
int low = 0,high = nums.length-1;
while (low <= high) {
int mid = (low + high) / 2;
if (nums[mid] == target) {
return mid;
}
if (nums[mid] < target) {
++low;
}
else {
--high;
}
}
return -1;
}
}