先按照array,string,tree,linkedist,math的tag刷
tag:array
简单
- 高度检查器(1051):非递增列表排序,输出最小交换数
错误:只想到用for循环,若i < j就交换位置,这样交换的次数不是最少的
正确:直接用sored排序列表,输出两个列表不相等的元素的个数即为最小交换次数 - 0~n-1中缺失的数字(53):长度为n-1的递增列表缺失的数字
错误:遍历,用for循环,找到缺失数字忘记break出来
最优解:用二分法 - 最长连续递增序列(674):在一个未排序的列表中,找到最长且连续的递增序列
错误:遍历,没有考虑列表为0的情况,没有记录从中间开始的递增序列
正确:通过一个变量anchor,若列表中前一个数大于后一个数,则记录此时的列表长度 i - anchor + 1;
通过一个全1列表记录,若列表中前一个数小于后一个数,那么全1列表当前位置在前一个记录值上+1