滴滴算法题疑问?

那个求输入的最大为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] + " ");

}

}

}


全部评论
只能先读取String再转int是吗? 太无语了
点赞
送花
回复
分享
发布于 2015-09-25 21:28
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
滴滴
校招火热招聘中
官网直投
http://www.nowcoder.com/discuss/3081 欢迎讨论。
点赞
送花
回复
分享
发布于 2015-09-25 22:56

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务