文章目录
- 刷题前唠嗑
- K 个元素的最大和
- 题目描述
- 代码与解题思路
- 结语
刷题前唠嗑
LeetCode? 启动!!!
今天早上概率论期中,被爆杀完之后,下午数电,今天很疲惫很疲惫,一直拖到了现在,终于是把每日一题给做了
K 个元素的最大和
题目链接:2760. 最长奇偶子数组
题目描述
代码与解题思路
func longestAlternatingSubarray(nums []int, threshold int) (ans int) {
n := len(nums)
i := 0
for i < n {
if nums[i] > threshold || nums[i]%2 != 0 { // 寻找起始点
i++
continue
}
start := i
i++ // 从第二个点开始找
for i < n && nums[i] <= threshold && nums[i]%2 != nums[i-1]%2 {
i++
}
ans = max(ans, i-start)
}
return ans
}
贯彻题目怎么说,咱们就怎么做的原则:
- 题目说从偶数开始,我们就遍历数组从偶数开始
- 题目说取的数要 <= threshold,那我们就不从 > threshold 的值开始,遇到 > threshold 的值结束
- 题目说找一个奇数一个偶数相邻,我们就 nums[i]%2 != nums[i-1]%2
- 然后记录最长的子数组即可
结语
明天还有计组期中,玉玉了