做了35显然704是简单的…或许是因为二分法开局是这样的..慢慢来啦

    实际是704我的答案错了一次…

    1.png

    直接上二分法…开始培养好的代码风格吧…

    以下为错误代码:

    1. class Solution {
    2. public int search(int[] nums, int target) {
    3. int low = 0,high = nums.length-1;
    4. while (low < high) {
    5. int mid = (low + high) / 2;
    6. if (nums[mid] == target) {
    7. return mid;
    8. }
    9. if (nums[mid] < target) {
    10. ++low;
    11. }
    12. else {
    13. --high;
    14. }
    15. }
    16. return -1;
    17. }
    18. }

    33/47的样例

    输入[5] 5的时候理应返回0,而我是-1

    改的方法就是一个地方:while (low <= high)

    最后代码

    1. class Solution {
    2. public int search(int[] nums, int target) {
    3. int low = 0,high = nums.length-1;
    4. while (low <= high) {
    5. int mid = (low + high) / 2;
    6. if (nums[mid] == target) {
    7. return mid;
    8. }
    9. if (nums[mid] < target) {
    10. ++low;
    11. }
    12. else {
    13. --high;
    14. }
    15. }
    16. return -1;
    17. }
    18. }