2024.6.7
**每日一题**
3038.相同分数的最大操作数目 Ⅰ,该题为简单模拟题,先计算出前两个元素的和,依次往后遍历两个元素,若它们和与之前的相同,则答案++,若不同则直接跳出,结束。
134.加油站,该题最开始想到令每个加油站作为起点遍历一次数组,若能回到原点,则证明它为答案;但是该方法时间复杂度过高,我们需要进行优化,我们可以进行数学推导,若从i出发,到达j时不满足条件,不能继续前进,那么从i-j之间任何一个加油站出发都无法满足条件,所以我们直接从j+1个开始向前判断,降低了时间复杂度。每次遍历一个节点时,新建一个cnt向前,当向前超过数组最大数量时,我们需要用取余代表取回前面的节点。
135.分发糖果,从题目出发,刚开始理解为找到数组中最大的值,依次往两边递减,但是不好实现,所以作罢;后面又考虑到可以通过计算左边的上升子序列的长度和右边下降子序列的长度,再求其中的最大值求解,为了降低时间复杂度,所以我们可以通过两次遍历数组来代替二重循环;第一次从左到右遍历,算出每个元素连续左边上升序列的长度,第二次从右往左,算出每个元素右边连续下降序列的长度。同时,可以只开一个数组,第二次遍历用一个变量储存当前值,可以降低空间复杂度。