- 每个节点都要访问一次
- 每个节点仅仅访问一次
- 遍历顺序:在一层还未结束时会先进入下一层,直到最后一层,然后回到上一层继续遍历
- 遍历顺序:一层层的往下遍历
- 将问题分解为若干子问题,并且在每个子问题寻求最优解,从而使得最终结果也是最优解
- 动态规划会将子问题的结果存储,然后可以选择回退,贪心算法则不会
- 目标函数的单调性(单调递增或者递减),即 有序
- 存在上下界
- 能够通过索引访问
代码模板:
left ,right = 0,len(array) - 1
while left <= right :
mid = (left + right) / 2
if array[mid] == target:
#find the target!!
break or return result
elif array[mid] < target:
left = mid + 1;
else:
right = mid - 1;