滴滴算法题疑问?

那个求输入的最大为0连续字串 怎么不通过?

import java.util.Scanner;

import java.util.StringTokenizer;


//1 2 3 4 -1 -2 -4 -3 1 2

publicclass Main {

public static void main(String[] args) {


Scanner sc = new Scanner(System.in);

String line = sc.nextLine();

StringTokenizer st = new StringTokenizer(line, " ");

int[] list = new int[st.countTokens()];

for (int i = 0; i < list.length; i++) {

list[i] = Integer.parseInt(st.nextToken());

}

int maxLength = 0;

for (int i = list.length - 1; i >= 0; i--) {

int sum = list[0];

boolean needbreak = false;

for (int j = 1; j <= i; j++) {

sum += list[j];

}

if (sum == 0) {

maxLength = i + 1;

needbreak = true;

break;

}

if (needbreak) {

break;

}

}

for (int k = 0; k < maxLength; k++) {

System.out.print(list[k] + " ");

}

}

}


全部评论
http://www.nowcoder.com/discuss/3081 欢迎讨论。
点赞 回复 分享
发布于 2015-09-25 22:56
import java.util.Scanner; //最长和为0的数组 public class Main2 { //1 2 3 4 -1 -2 -4 -3 1 2 public static void main(String[] args) { // TODO Auto-generated method stub Scanner input=new Scanner(System.in); String[] data=input.nextLine().split(" "); int[] data1=new int[data.length]; for(int i=0;i<data1.length;i++){ data1[i]=Integer.valueOf(data[i]); } for(int i=0;i<data1.length;i++){ int sum=0; StringBuffer resoult=new StringBuffer(); for(int j=0;j<data1.length-i&&j<data1.length;j++){ String temp=data1[j]+""; resoult.append(temp+" "); sum+=data1[j]; } if(sum==0){ System.out.println(resoult); System.exit(0); } } } }
点赞 回复 分享
发布于 2015-09-25 22:46
只能先读取String再转int是吗? 太无语了
点赞 回复 分享
发布于 2015-09-25 21:28

相关推荐

rndguy:个人思路,抛砖引玉。 要我的话我先问清楚需求:要什么精度,什么速度,什么环境。 如果精度要求很低,平台也有点柔性的话,只需要输出pwm,然后开个中断记录各多少个脉冲,如果脉冲时间不对齐了就反馈控制电流加减就行。要求同步要求稍微高点的话可以在脉冲间做个线性插值,同步精度会高些。 但总体来说,如果直流有刷只有脉冲没有好的编码器的话很难做精准定位什么的(除非用一些电机磁路结构相关的奇技淫巧如高频注入什么的),所以要求更高就需要大量参数辨识和校准,那就慢多了。
点赞 评论 收藏
分享
09-14 17:23
门头沟学院
故事和酒66:所以说副业很重要,程序员干到40岁,再怎么也赚300万了,吃吃利息也够活下去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务