关注
/**解法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-11 18:05
集美大学 Web前端 点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 考研对你找工作产生了哪些影响? #
11681次浏览 120人参与
# 找实习你看重大厂光环还是业务方向 #
5777次浏览 49人参与
# 聊聊这家公司值得去吗 #
250851次浏览 2313人参与
# kpi面有什么特征 #
39182次浏览 321人参与
# 职场捅娄子大赛 #
365698次浏览 3750人参与
# 打杂的实习你会去吗? #
110859次浏览 966人参与
# 为了找工作你投递了多少公司? #
16358次浏览 240人参与
# 你有哪些缓解焦虑的方法? #
6831次浏览 233人参与
# 机械只有读研才有出路吗? #
20180次浏览 230人参与
# 职场人,说说你的烦心事 #
9379次浏览 85人参与
# 工作中哪个瞬间让你想离职 #
24336次浏览 167人参与
# 大家实习每天都在干啥 #
81036次浏览 499人参与
# 职场上哪些事情令人讨厌 #
17080次浏览 87人参与
# 实习想申请秋招offer,能不能argue薪资 #
139735次浏览 889人参与
# 校招第一份工作你干了多久? #
75364次浏览 367人参与
# 你认为哪个岗位找工作最卷 #
19558次浏览 85人参与
# 小米求职进展汇总 #
825473次浏览 5922人参与
# 远程面试的尴尬瞬间 #
101739次浏览 832人参与
# 没有合适的工作,你会先找个干着,还是考公考研 #
112030次浏览 1114人参与
# 晒晒你拍过最美的校园角落 #
3377次浏览 191人参与