关注
/**解法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-03 17:01
门头沟学院 Java 点赞 评论 收藏
分享
05-26 10:24
门头沟学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 聊聊这家公司值得去吗 #
231072次浏览 2175人参与
# 职场人,说说你的烦心事 #
8333次浏览 69人参与
# 你认为哪个岗位找工作最卷 #
10310次浏览 39人参与
# 职场上哪些事情令人讨厌 #
16548次浏览 82人参与
# 一人一个landing小技巧 #
78308次浏览 1117人参与
# kpi面有什么特征 #
30741次浏览 181人参与
# 秋招最大的收获是什么? #
33796次浏览 296人参与
# 大家每天通勤多久? #
41893次浏览 329人参与
# 职场吐槽大会 #
204974次浏览 1634人参与
# 职场破防瞬间 #
234811次浏览 2125人参与
# 小红书求职进展汇总 #
56028次浏览 483人参与
# 为了找工作你投递了多少公司? #
8614次浏览 112人参与
# 找工作前vs找工作后的心路变化 #
9552次浏览 102人参与
# tplink提前批进度交流 #
162602次浏览 1377人参与
# 通信硬件牛牛的实习日记 #
7102次浏览 65人参与
# 总结:哪家公司面试体验感最好 #
47525次浏览 336人参与
# 机械制造岗投递时间线 #
22665次浏览 345人参与
# 硬件人你反向读研了吗 #
41719次浏览 630人参与
# 许愿池 #
283035次浏览 2868人参与
# 担心入职之后被发现很菜怎么办 #
126223次浏览 753人参与