关注
/**解法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;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 什么是优秀的实习经历 #
8179次浏览 206人参与
# 实习简历求拷打 #
11433次浏览 146人参与
# 被上班搭子“传染”了哪些习惯 #
5409次浏览 97人参与
# 秋招被挂春招仍然能投的公司 #
6567次浏览 94人参与
# 工作后,你落下了哪些病根 #
13129次浏览 183人参与
# mt对你说过最有启发的一句话 #
35109次浏览 419人参与
# 摸鱼被leader发现了怎么办 #
100745次浏览 641人参与
# 考研失败就一定是坏事吗? #
200811次浏览 1369人参与
# 秋招特别不鸣谢 #
15493次浏览 176人参与
# 选实习,你更看重哪方面? #
13803次浏览 215人参与
# 作业帮求职进展汇总 #
82766次浏览 545人参与
# 今年秋招你收到了多少封邮件? #
17878次浏览 219人参与
# 机械/制造每日一题 #
80232次浏览 1411人参与
# 第一次面试 #
1036396次浏览 13682人参与
# 携程求职进展汇总 #
839904次浏览 5530人参与
# 毕业论文进行时 #
20852次浏览 131人参与
# 工作中遇到的歹人 #
27886次浏览 313人参与
# 京东美团大战,你怎么看? #
158012次浏览 859人参与
# 你今年的保底offer是哪家 #
155060次浏览 671人参与
# 找工作有哪些冷知识 #
205807次浏览 2607人参与