给定一个长度为 n 的数组“arr”。您的任务是找到最长的非递减子数组的长度,并且子数组的总和可以被“k”整除。子数组是数组的连续部分。如果子数组中的所有元素都按非递减顺序排列,则子数组是非递减的。更正式地说,如果 arr[i] ≤ arr[i+1] ≤ arr[i+2] ≤ ... ≤ arr[j],则子数组 arr[i, j] 是非递减的。
示例 1:
输入:
n = 4
arr[] = [1, 2, 3, 8]
k = 3
输出:
3
解释:最长的非递减子数组是 [1, 2, 3],其和为 6,可被 3 整除。
示例 2:
输入:
n = 3
arr[] = [3, 2, 1]
k = 1
输出:
1
解释:最长的非递减子数组是 [3], [2], [1],其长度为 1,也可被 1 整除。
您的任务:
您不需要读取输入或打印任何内容。您的任务是完成函数 longestSubarray(),该函数以数组 arr[] 及其大小 n 和整数 k 作为输入参数并返回整数值。
约束:
1 ≤ n ≤ 10
1 ≤ arr[i] ≤ 10
1 ≤ k ≤ 1000
数组可能包含重复元素。
----
用hashmap来计算能否被k整除,同时用分组循环的方式就是一个递增子数组只计算一次,不然就会超时。