求助帖:牛客笔试数组输入问题

百度笔试和爱立信的笔试中的问题
在牛客笔试遇到两次这种情况了,输入一个数字和一行数字:
无论用哪种方式总是包数组非法越界的问题,求助这种怎么写输入呀????
我的方法:
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        int n = Integer.parseInt(s);
        int[] arr = new int[n];
        for(int i=0;i<n;i++){
            arr[i] = sc.nextInt();
        }
用整行读取再split方法:
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        int n = Integer.parseInt(s);        
        String s2 = sc.nextLine();
        String[] str = s2.split(" ");
        int[] arr = new int[str.length];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = Integer.parseInt(str[i]);
        }
都会报错数组越界,请问正确的写法是啥呀???我真菜!!!!

#牛客网笔试##笔试题目#
全部评论
https://ac.nowcoder.com/acm/contest/320 这里有很多例题,你都试试,也可以在提交列表看别人通过的代码
2 回复 分享
发布于 2020-03-29 21:04
需要开大一点,不要正正好好n,例如n+2或者n+3之类的
点赞 回复 分享
发布于 2020-03-29 22:20
越界应该是你代码里面的问题吧,你只测读取也越界?
点赞 回复 分享
发布于 2020-03-29 21:38
很坑,很迷。应该不是牛客的问题,我用的是nextline,然后split切割;之前牛客刷题没问题,今天数字为long就不行了。不知道为什么,我还考虑到了数字大小问题,用long数组保存字符串切割后的数字,也越界了
点赞 回复 分享
发布于 2020-03-29 21:36
差不多是这个问题吧应该https://blog.csdn.net/Mr_yuntuo/article/details/84714646
点赞 回复 分享
发布于 2020-03-29 21:31

相关推荐

敢逐云霄志:你打招呼语怎么能这么长,hr都没看下去的欲望,简明扼要说重点,就读于某某学校某某专业,26届应届毕业生,学信网可查,先后在某某公司实习过(如有),然后做过什么项目,想找一份什么样的工作,可实习几个月以上,期待您的回复。
点赞 评论 收藏
分享
10-15 10:23
门头沟学院 Java
牛可乐的头像真牛:赶紧举报,这公司绝对是诈骗的,等你签约后工作一两个月后根据合同漏洞把你开除,并且要求你赔偿3w培训费,996是为了提前筛选心甘情愿签下合同容易受骗的群体,纯粹面向校招生精心设计的骗局
你见过哪些工贼行为
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

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