第一天
第一题 344.反转字符串
直接使用双指针,分别从前从后遍历,并且交换数组元素的值就好了。
第二题 345.反转元音字母
和344差不太多,只要判断一下是不是元音再进行交换就可以了
第二天
第一题 27.移除元素
使用快慢指针,快指针用来遍历数组,满指针遍历最终需要输出的数组
第二题 80. 删除有序数组中的重复项 II
第三题 925.长按键入
最后别忘记判断typed比name长的部分就好了
第三天
第一题 643.子数组最大平均
这个题是典型的滑动窗口,最后注意计算的时候要把int型的sum先转为double
第二题 674. 最长连续递增序列
感觉和滑动窗口关系不大,就简单遍历,统计最大的就可以了
第三题 1004. 最大连续1的个数 III
-
初始化一个左指针
left
、一个变量zero_count
用于记录窗口内0的个数,并初始化一个变量max_length
用于记录最大连续1的长度。 -
使用一个循环遍历数组,将右指针
right
逐步向右移动,同时统计窗口内的0的个数。 -
如果窗口内0的个数大于k,说明窗口内需要翻转的0的个数超过了允许的最大值k,这时需要缩小窗口。通过移动左指针
left
来缩小窗口,同时更新zero_count
。 -
在每一步中,都会更新
max_length
,以确保它始终记录窗口中最大的连续1的长度。 -
最终,返回
max_length
作为满足条件的最大连续1的个数。