zoukankan      html  css  js  c++  java
  • 面试代码基础(二)二分法binary Search Sorted Array

    二分法总结:满足某个条件的first position of。。。。  和 last position  of。。。。用二分法

    先从二分法开始写:

    4点:

    1.start+1<end; 退出条件两个相邻了就退出

    2.mid=start+(end-start)/2;//防止溢出

    3.A[mid] == > <

    4.最后判断相邻的两个元素和target的关系

    找第一个出现target的位置

    if(A.size() == 0){
        return -1;
    }
    int start=0;int end=A.size()-1;
    while(start+1<end){
        int mid=start+(end-start)/2;
        if(target == A[mid]){
            end = mid;//find first appear
        }
        else if(target < A[mid]){
            end = mid;
        }else if(target > A[mid]){
            start=mid;
        }
    }
    if(target == A[start]){
        return start;
    }
    else if(target ==  A[end]){
        return end;
    }
    return -1;
    

    Search for a range

    找first pos  last pos

    当target == A[mid]

    start 和 end怎么挪

    1 2 4 4 5

    找左边界

    在(target == A[mid]){

    end=mid;

    }

    找右边界

    (target == A[mid]){

    start=mid;

    }

    寻找插入位置(无重复元素)

    第一个大于等于target的下标

    在第四点会发生变化~

    iftargete)

    Search a 2D matrix

    行递增  列递增

    思考:从左下角考虑

    可以删掉一行或者一列!!!

  • 相关阅读:
    Java安装以及环境变量配置
    IPython绘图和可视化---matplotlib
    Tensorboard可视化(关于TensorFlow不同版本引起的错误)
    Tensorboard可视化
    关于Tensorflow安装opencv和pygame
    perl将json转换成xml
    cnblogs终于把以前内容的管理权还给我了~
    final评论2
    final评论1
    psp
  • 原文地址:https://www.cnblogs.com/ldphoebe/p/5940682.html
Copyright © 2011-2022 走看看