南昌本地生活网站有哪些,苏州网页制作,wordpress远程图片模块,wordpress后台如何设置为中文题目 给你一个下标从 0 开始的整数数组 nums 和一个整数 threshold 。 请你从 nums 的子数组中找出以下标 l 开头、下标 r 结尾 (0 l r nums.length) 且满足以下条件的 最长子数组 #xff1a; nums[l] % 2 0 对于范围 [l, r - 1] 内的所有下标 i #xff0c…题目 给你一个下标从 0 开始的整数数组 nums 和一个整数 threshold 。 请你从 nums 的子数组中找出以下标 l 开头、下标 r 结尾 (0 l r nums.length) 且满足以下条件的 最长子数组 nums[l] % 2 0 对于范围 [l, r - 1] 内的所有下标 i nums[i] % 2 ! nums[i 1] % 2 对于范围 [l, r] 内的所有下标 i nums[i] threshold 以整数形式返回满足题目要求的最长子数组的长度。 注意子数组 是数组中的一个连续非空元素序列。 解题思路
双层循环三个条件依次判断进行累加记录。
代码展示
public class Zero {public static void main(String[] args) {Zero zero new Zero();System.out.println(zero.longestAlternatingSubarray(new int[]{3,2,5,4}, 5));System.out.println(zero.longestAlternatingSubarray(new int[]{1,2}, 2));System.out.println(zero.longestAlternatingSubarray(new int[]{2,3,4,5}, 4));}public int longestAlternatingSubarray(int[] nums, int threshold) {int ans 0;for (int i 0; i nums.length; i){if(nums[i] % 2 ! 0 || nums[i] threshold){continue;}int count 1;for (int j i 1; j nums.length; j){if(nums[j] % 2 nums[j - 1] % 2){break;}if(nums[j] threshold){break;}count;}ans Math.max(ans, count);}return ans;}
}