编程问题
- 计算数组长度的函数是
len(), 而非length() - Python循环语句应使用冒号:,而非花括号(C的语法)
- 计算坐标时,期望结果是整数,应该使用双斜线//,而非单斜线/
- 一定要检查边界问题,避免无限循环。比如二分查找左闭右开的left_idx必须有变化,要考虑计算结果tmp_idx==left_idx的情况(+1即可排除当前tmp)
- 不要在Python中用C风格的for循环,要用
for 变量 in 范围 - Python新建空数组,没有默认索引。所以采用
nums.append()添加新元素,而非用索引的方式添加
困惑
- 为什么无论左边界是开的还是闭的,二分查找的左边界更新都要+1?但是右边界就是开则正常,闭则+1.
PLUS
- 在想用新数组替代旧数组时,探索双指针解法的可行性,在一个数组上完成操作
- 如果想对Python数组的每个元素进行同样的操作,不妨想想下面的简洁写法:
new = [num * num for num in nums]
- 双指针很有趣,今天的二分查找、移除元素、有序数组的平方都可以用它解决
浙公网安备 33010602011771号