1. 二分查找常用left+(right-left)//2而不是(left+right)//2.
我习惯用(left+right)//2,感觉理解起来更直观。
但是很多解法,总喜欢用left+(right-left)//2,一直不知道为什么。
今天刷题在评论区看到了解释,这是因为:
left+right 当left和right都很大的时候,可能会造成越界。
虽然说python3自动转换整数和长整数不需要考虑溢出,这么写有些多余,
可是算法并不局限于某一种语言,而是一种思想,所以以后还是要具备这种思想。
- 字符串转换成字符数组:char d[] = str.toCharArray();
- 字符数组转换成字符串: new String(my_str);
- 字符串分割:String[] str=s.split(" ");