关注
/**解法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;
}
查看原帖
点赞 评论
相关推荐
11-15 14:35
南京邮电大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习简历求拷打 #
9357次浏览 108人参与
# 担心入职之后被发现很菜怎么办 #
265751次浏览 1129人参与
# 秋招被挂春招仍然能投的公司 #
5965次浏览 91人参与
# 作业帮求职进展汇总 #
82327次浏览 542人参与
# 什么是优秀的实习经历 #
7647次浏览 201人参与
# 投格力的你,拿到offer了吗? #
152003次浏览 812人参与
# 京东美团大战,你怎么看? #
157618次浏览 859人参与
# 如果今天是你的last day,你会怎么度过? #
58793次浏览 324人参与
# mt对你说过最有启发的一句话 #
33300次浏览 406人参与
# 为了找工作你花了哪些钱? #
74744次浏览 359人参与
# 机械人晒出你的简历 #
146352次浏览 874人参与
# 摸鱼被leader发现了怎么办 #
99435次浏览 635人参与
# 考研失败就一定是坏事吗? #
200219次浏览 1366人参与
# 秋招特别不鸣谢 #
14873次浏览 172人参与
# 2023毕业生求职有问必答 #
218459次浏览 1662人参与
# 选实习,你更看重哪方面? #
13069次浏览 212人参与
# 第一次面试 #
1035986次浏览 13682人参与
# 金融财会交流会 #
128237次浏览 441人参与
# 你觉得多少薪资算SSP? #
120387次浏览 425人参与
# 今年秋招你收到了多少封邮件? #
17426次浏览 219人参与
