备赛进度总结第三周
这一周因为经历了一些测试,让我知道了我该去学习一些别的方法,所以我去看了一些可以直接用的一些方法就会使代码更加简洁。
创建数组及其一系列的方法:
ArrayList arr = new ArrayList<>( );
arr.add(索引,值);//添加元素
arr.get(索引);//访问元素
arr.set(索引,值);//更新元素
arr.remove(值);//删除元素
arr.size();//数组长度
arr.contains(值);//查找元素,返回布尔型
Collections.sort(arr);//数组排序从小到大
Collections.sort(arr,Collections.reverseOrder());///数组排序从大到小
双指针
普通双指针:两个指针往同一个方向移动
对撞双指针:两个指针面对面移动
快慢双指针:慢指针+快指针
二分查找法
重要特点:一定要有序
所做力扣习题
141 环形链表
需要创建一个快指针和慢指针,当俩个指针相遇之后就证明这是个环形链表
881 救生艇
这题运用了对撞双指针,先将数组从小到大排序,然后通过判断来解决怎么分合适
704 二分查找
这题规定了数组有序,则可以直接用二分查找法。
35 搜索插入位置
运用了很明显的二分查找,通过二分查找来返回其索引值
162 寻找峰值
通过遍历数组找最大值或最小值即可
总结:这周就是主要看了双指针与二分查找,发现自己的逻辑能力还没有那么强大,需要花费很多的心思才能将那些题目看懂明理解透彻,这证明我还是需要刷更多的题目。