猿辅导洗牌的那道题 本地跑出来很好,为什么网页上显示数组越界

//猿辅导洗牌的那道题 本地跑出来很好, 为什么网页上显示数组越界啊 求大神指导 import java.util.Scanner;
public class test1 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        Scanner scanner2=new Scanner(System.in);

        //下面是对第一行数字读取 将两个数字放在了num数组里面
        String inputString=scanner.nextLine();
        String stringArray[]=inputString.split(" ");
        int num[]=new int[stringArray.length];
       for(int i=0;i<stringArray.length;i++){
           num[i]=Integer.parseInt(stringArray[i]);
       }

       //下面这行是读取第二行数字,将那些数字放在了num2数组里面
        String inputString2=scanner2.nextLine();
        String stringArray2[]=inputString2.split(" ");
        int num2[]=new int[stringArray2.length];
        for(int i=0;i<stringArray2.length;i++){
            num2[i]=Integer.parseInt(stringArray2[i]);
        }


        //下面定义了两个数组分别用来放 那两部分数字 (前半段数字跟后半段数字)
        int temp1[]=new int[stringArray2.length/2];
        int temp2[]=new int[stringArray2.length-stringArray2.length/2];


        //下面就是不断循环  进行洗牌

        int i=0;
        while(i<num[1]){
           // int j=0;
            for(int j=0;j<stringArray2.length/2;j++){
                temp1[j]=num2[j];
            }
            for(int j=0;j<(stringArray2.length-stringArray2.length/2);j++){
                temp2[j]=num2[j+stringArray2.length/2];
            }
            int ii=0,jj=0;
            while(ii<stringArray2.length/2||ii<(stringArray2.length-stringArray2.length/2)){
                if(ii<temp2.length){
                num2[jj]=temp2[ii];
                jj++;}
                if(ii<temp1.length) {
                    num2[jj] = temp1[ii];
                    jj++;
                }
                ii++;
            }
            i++;
        }
        for(int iii=0;iii<num2.length;iii++)
            System.out.print(num2[iii]+" ");
    }
}



全部评论

相关推荐

吃辣椒还买票:没有一个公司不加班的,不加班的公司哪有收益给你开工资啊
点赞 评论 收藏
分享
09-27 00:29
东北大学 Java
伟大的麻辣烫:查看图片
阿里巴巴稳定性 75人发布 投递阿里巴巴等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务