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

百度笔试和爱立信的笔试中的问题
在牛客笔试遇到两次这种情况了,输入一个数字和一行数字:
无论用哪种方式总是包数组非法越界的问题,求助这种怎么写输入呀????
我的方法:
        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
差不多是这个问题吧应该https://blog.csdn.net/Mr_yuntuo/article/details/84714646
点赞 回复 分享
发布于 2020-03-29 21:31
很坑,很迷。应该不是牛客的问题,我用的是nextline,然后split切割;之前牛客刷题没问题,今天数字为long就不行了。不知道为什么,我还考虑到了数字大小问题,用long数组保存字符串切割后的数字,也越界了
点赞 回复 分享
发布于 2020-03-29 21:36
越界应该是你代码里面的问题吧,你只测读取也越界?
点赞 回复 分享
发布于 2020-03-29 21:38
需要开大一点,不要正正好好n,例如n+2或者n+3之类的
点赞 回复 分享
发布于 2020-03-29 22:20

相关推荐

10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
三年之期已到我的offer快到碗里来:9硕都比不上9本
点赞 评论 收藏
分享
1 2 评论
分享
牛客网
牛客企业服务