计算时间复杂度的必备技能
1.判断循环什么时候结束
2.观察函数被调用了多少次(适用于递归,动态规划问题)
while i < n:
i=i*2
while i < n:
i=i+i
实在不行举个例子,i=1,2,4,8,2^m
递归解题模型
原则:先写递归出口(终止条件),再写递归体
二分问题解题模板
1.为什么中间值的获取要+1呢?
int mid = left +(right-left + 1)/2;
2.为什么while循环要<而不是<=呢?
while(left < right)
3.为什么返回的不是left呢?
return right;
参考链接:https://www.youtube.com/watch?v=fvIrI4ph1lA&list=PLV5qT67g