igubai

总结一下本次二面的一道算法题,当时代码写到一半,发现自己逻辑好像有问题,然后就没办法往下写了,导致最终没做出来,面试出来百度了一下,瞬间感觉自己.........

废话不多说,直接看题

需求:写一个二分查找,用迭代的方式去实现,并设计该算法的测试案例

面试完后看见这个题目真是简单,直接代码写起

  • 方法一:迭代实现

    public class Algorithm{
    public int binarySearch(int[] nums,int target){
    int left = 0;
    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 if(nums[mid]>target){
    right = mid-1;
    }
    }
    return -1;
    }
    }

测试案例:

public class AlgorithmTestCase{
    public static void main(String[] args){
        Algorithm algorithm = new Algorithm();
        int [] nums = {1,3,5,7,8,9};
        int target = 7;
        System.out.println(algorithm.binarySearch(nums,target))
    }
}

当然,我这里只写了一个正向测试案例,因为我上面的写的二分法是如果能查到目标值,则返回目标只的索引下标,如果target在nums集合中如果没有找到,则返回-1,这个案例请读者自行去写。

分类:

技术点:

相关文章:

  • 2021-11-03
  • 2022-01-03
  • 2018-04-18
  • 2021-06-09
  • 2022-01-30
  • 2021-12-09
  • 2021-12-15
  • 2021-07-04
猜你喜欢
  • 2021-06-25
  • 2022-01-06
  • 2021-08-28
  • 2021-12-19
  • 2021-11-16
  • 2022-12-23
  • 2021-07-05
相关资源
相似解决方案