全部评论
就是把0看成分割1的隔板,求最大的格子里小球数目
送花
回复
分享
最长不重复子串的变形,判断条件变一下,子串中不能包含2个0
送花
回复
分享
滴滴
官网直投
var fn = function (s) { var max=0 var num = 0 for (let i = 0; i < s.length; i++) { if (s[i]==1) { num++ max=Math.max(max,num) }else{ var j=i+1 while(s[j]==1){ num++ j++ } max=Math.max(max,num) num=0 } } return max } js的能看懂把
送花
回复
分享
没有参加这次的机试,不知道这样的思路可不可以通过。 * 原数组增加一位,最后一位 置为 0,维护一个同样长度的数组用来 记录每个 0 前后的 1 的个数和。 * 定义一个整型 count 用来统计 两个0之间的 1 的数量 * 一个整型 index 记录上一个 0 的下标
送花
回复
分享
int m = Integer.parseInt(br.readLine()); int[] num = new int[m + 1]; String[] s = br.readLine().split(" "); for(int j = 0; j < m; j ++) { num[j] = Integer.parseInt(s[j]); } num[m] = 0; int[] arr = new int[m + 1]; int count = 0; int index = -1; if (num[0] == 0) { index = 0; } int max = 0; for(int j = 0; j <= m; j ++) { if (num[j] == 1) { count ++; } else { arr[j] += count; max = Math.max(max, arr[j]); if (index >= 0) { arr[index] += count; max = Math.max(max, arr[index]); } count = 0; index = j; } } System.out.println(max == m ? m - 1 : max);
送花
回复
分享
相关推荐
点赞 评论 收藏
转发