给你一个整数数组 nums 和一个整数k,编写一个函数来判断该数组是否含有同时满足下述条件的连续子数组;
1.子数组大小至少为 2。
考虑前缀和,对于每一个i的前缀和s[i],如果要找到一个以j为左端点,以i作为右端点的区间,使得这个区间对应的元素之和为k的倍数,那么就需要满足s[i] % k == s[j] % k,这样二者相减的和肯定是k的整数倍。
所以只需要维护i前面的所有前缀和%k的值即可,如果有一个前缀和模k,且对应的区间长度大于等于2就返回true,找不到则返回false。
本题属于以下题库,请选择所需题库进行购买