7.13 二分法

1 minute read

二分法模板

  • 给定已排序的数组, 和target, 查找数组中任意一个/第一个/最后一个位置的target, 如果找不到则返回-1

二分位置(Binary Search on Index)

  • 找到满足某个条件的第一个位置或者最后一个位置

  • 保留有解的一半, 或者去掉无解的一半

  • 根据时间复杂度倒推算法是面试中的常用策略

    • O(1)很少遇到
    • O(logn)几乎是二分法
    • O(✓n)几乎是分解质因数
    • O(n)高频
    • O(nlogn)一般可能要排序
    • O(n^2)数组, 枚举, 动态规划
    • O(n^3)数组, 枚举, 动态规划
    • O(2^n)与组合有关的搜索
    • O(n!)与排列有关的搜索

二分法

  • 初级之二分法模板
# Title Solution Difficulty Source Code From
14 First Position of Target   Easy FirstPositionofTarget.java lintcode
xx Last Position of Target   Easy LastPositionofTarget.java github

参考