1、排序
1.1 排序API
1) Arrays.sort(nums); 直接快排将数组排序:
2) s.split(" "); 切割字符串为数组
3) str[i].substring(0,9); 截取字符串
4) Arrays.equals(str1, str2);比较两个数组是否一样
5) char[] str1 = s.toCharArray(); 将字符串转为数组
6) table.getOrDefault(ch, 0) 表示或去key为ch的value值 若没有则返回默认设置值0
7) Arrays.stream(aliceSizes).sum(); 求和。
1.2 排序套路总结
排序-简单中用的最多的还是 计次排序 占50%,同时使用计次排序的 题也大概率可以用快排直接排序解题。
根据时间复杂度以及解法频率可以确定从【 计次排序 >= 找最大最小 >= 两个指针 >= 数学 】> 快速排序 优先考虑前三种方向,
最后没办法可以快排实现。
在使用计次排序时,要注意看一下,是否和桶中的次数有紧密关系,如果仅仅判断桶中是否包含某个元素,则可以直接用HashSet集合。
[计次排序]:出现【有多少(个)...】【字符串中带数字】【排序/排列】【人数/个数/次数/总量/x个元素】【线性时间复杂度】
[找最大最小]:出现【两元素..】的关系 如乘积、差等
[两个指针]:出现 【调整顺序】
[数学]:在可以用计次排序后,可以看看题目中是否对于数字的逻辑公式有较强的相关性,可以尝试数学方法以减小空间复杂度。
2、线性表
1.1 线性表API
1.2 线性表套路总结