力扣每日一题-最长奇偶子数组-2023.11.16

    力扣每日一题:最长奇偶子数组

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

题目描述

代码思路

利用单指针进行扫描,符合子数组起点要求时,开始记录子数组长度。题目本身不难理解,就是判断的条件比较多,需要耐心和细心。

代码纯享版

class Solution {
    public int longestAlternatingSubarray(int[] nums, int threshold) {
        int maxlen = 0;
        int left = 0;
        while(left < nums.length){
            int len = 0;
            while(left < nums.length && nums[left] % 2 != 0) left++;
            if(left >= nums.length) break;
            if(nums[left] <= threshold){
                len = 1;
                while((left + 1) < nums.length){
                    if(nums[left + 1] <= threshold && nums[left] % 2 != nums[left + 1] % 2){
                        len++;
                        left++;
                    }
                    else  break;
                }
            }
            maxlen = Math.max(maxlen, len);
            left++;
        }
        return maxlen;
    }
}

你可能感兴趣的:(Java算法,leetcode,算法,职场和发展,java,数据结构)