刷题前唠嗑

【LeetCode】每日一题 2023_11_16 最长奇偶子数组(枚举,模拟)-LMLPHP
LeetCode? 启动!!!

今天早上概率论期中,被爆杀完之后,下午数电,今天很疲惫很疲惫,一直拖到了现在,终于是把每日一题给做了

K 个元素的最大和

题目链接:2760. 最长奇偶子数组

题目描述

【LeetCode】每日一题 2023_11_16 最长奇偶子数组(枚举,模拟)-LMLPHP

代码与解题思路

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
}

贯彻题目怎么说,咱们就怎么做的原则:

  1. 题目说从偶数开始,我们就遍历数组从偶数开始
  2. 题目说取的数要 <= threshold,那我们就不从 > threshold 的值开始,遇到 > threshold 的值结束
  3. 题目说找一个奇数一个偶数相邻,我们就 nums[i]%2 != nums[i-1]%2
  4. 然后记录最长的子数组即可

结语

明天还有计组期中,玉玉了

11-20 21:24