在我认为这道题相比前两道是比较简单的,首先可以分析一下这道题的大体思路,要求新数组是有序的,在整合之后我就得排序了,但是前提是合并的是两个有序的数组,这就意味着,我们只需要将两个数组放入新数组时,只要一个小的时候,就不用继续往下比了,前期我是这种思路,后来,看了网上的思路之后,其实有更简单的方法就可以将做出来了。
具体代码:
public static int[] getNewArray(int arr1[],int arr2[]){
int[] newArray=new int[arr1.length+arr2.length];
for(int i=0;i<arr1.length;i++){
newArray[i]=arr1[i];
}for(int j=0;j<arr2.length;j++){
newArray[arr1.length+j]=arr2[j];
}
//对新数组 进行排序
Arrays.sort(newArray);
return newArray;
}
分析:只要将两个数组,分别存放到新数组就好了,然后通过Arrays这个类的sort函数,将其排序就好了。
但是注意的是数组的下标,有时候就会出界,我开始遇到的是,数组长度是对的,但是数组没有把最后一个数值存放到新的数组中,这是因为,遍历的时候,i和j的最大值都是length-1而不是length,所以每次都取不到最后一个的值。
还有一种是将组成的新数组,通过排序的算法实现数组的有序,用冒泡排序,选择排序都可以实现数组的有序。自己封装一个排序的函数。
可能还有其他的方式,有研究出来的,可以相互借鉴一下。
版权声明:本文为weixin_44895706原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。