关注
/**解法2
* 若 (a[i]+a[i+1]+...+a[j])%5=0,
* 则有 (a[0]+a[1]+...+a[j])%k = (a[0]+a[1]+...+a[i-1])%k
* @param a 输入序列
* @param k mod值
* @return 最大子序列长度
*/
private static int findLargeSeq2(int[] a, int k) {
int sum = 0;
Map<Integer, Integer> candidates = new HashMap<>();
candidates.put(0, -1); //初始为0
int result = 0;
for(int i=0;i<a.length;i++){
sum += a[i];
if (!candidates.containsKey(sum%k)) {
candidates.put(sum%k, i);
}else {
//return Arrays.copyOfRange(a, candidates.get(sum%k)+1, i+1);
int temp = i-candidates.get(sum%k);
if (temp>result) {
result = temp;
}
}
}
return result;
}
//解法1:遍历所有的子序列,滑动窗口的思想
private static int findLargeSeq1(int[] a, int k) {
int len = a.length;
int result = 0;
for(int i=0;i<len;i++){
int sum = 0;
for(int j=i;j<len;j++){
sum +=a[j];
if (sum%5==0) {
if ((j-i+1)>result) {
result = j-i+1;
}
}
}
if (result>=len-i) {
break;
}
}
return result;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
06-07 21:26
江南大学 C++ 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 考研对你找工作产生了哪些影响? #
10995次浏览 119人参与
# 找实习你看重大厂光环还是业务方向 #
5188次浏览 48人参与
# 聊聊这家公司值得去吗 #
249849次浏览 2304人参与
# 摸鱼被leader发现了怎么办 #
57589次浏览 342人参与
# 职场捅娄子大赛 #
365427次浏览 3745人参与
# 大家实习每天都在干啥 #
80985次浏览 499人参与
# 实习想申请秋招offer,能不能argue薪资 #
139637次浏览 889人参与
# 我是XXX,请攻击我最薄弱的地方 #
28220次浏览 278人参与
# 打杂的实习你会去吗? #
110732次浏览 966人参与
# kpi面有什么特征 #
38936次浏览 320人参与
# 机械人晒出你的简历 #
76067次浏览 635人参与
# 我发现一个规律 #
7972次浏览 70人参与
# 电信求职进展汇总 #
9252次浏览 79人参与
# 你有哪些缓解焦虑的方法? #
6612次浏览 229人参与
# 海康威视求职进展 #
79082次浏览 457人参与
# 没有合适的工作,你会先找个干着,还是考公考研 #
112002次浏览 1114人参与
# 为了找工作你投递了多少公司? #
16068次浏览 239人参与
# 校招第一份工作你干了多久? #
75292次浏览 367人参与
# 机械只有读研才有出路吗? #
20168次浏览 230人参与
# 硬件开发岗知多少 #
11437次浏览 116人参与