各类算法总结

动态规划

 

动态规划题目总结

二分法

最简单的二分法:

  题目:array = [1, 3, 4, 5, 6],查找数组内值为num的下标index
  思路:在初始情况下, index<=right index=0, right=4
  一步一步尝试性地缩小index的查找的范围:
  由于数组是顺序性的,每次尝试获取left与right的均值,即mid = left + right >> 1,通过比较array[mid] 与 num的大小,检查index应该在mid的左边还是右边。

  1. 如果array[mid] > num right -= 1
  2. 如果array[mid] < num left +=1
  3. 如果array[mid] = num 下标就是num

二分法总结:

首先找到算法的输出,例如下标index

找到输出的值的初始范围 : index <= right, 初始index = 0

计算中位点, mid = left + right >> 1
找出中位点与条件的关系,这一步比较抽象,通过比较中位点与条件,从而缩小left或者right,例如比较array[mid] 与 num的大小,后续缩小范围很好理解。

二分法题目总结

原文地址:https://www.cnblogs.com/yulianggo/p/13417744.html