zoukankan      html  css  js  c++  java
  • 记录一次面试中二分查找的算法题

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

    废话不多说,直接看题

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

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

    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,这个案例请读者自行去写。

  • 相关阅读:
    [CF1439B] Graph Subset Problem
    [CF1439C] Greedy Shopping
    [CF1119F] Niyaz and Small Degrees
    [ARC101C] Ribbons On the Tree
    [CF1446C] Xor Tree
    11月24日 模拟赛 题解
    UOJ346
    [CF1229C] Konrad and Company Evaluation
    [CF1326F] Wise Men (Hard Version)
    学军联赛模拟 第二十七测 题解
  • 原文地址:https://www.cnblogs.com/igubai/p/12127600.html
Copyright © 2011-2022 走看看