猿问

计算两个整型数组之和,返回一个数组。

规则:对应的元素相加,不对应的直接赋值给相应的位置,如:{1,2,3}+{5,6,7,8,9}={6,8,10,8,9}。

以下是我通过类的方法写的代码,有没有更优化的算法?

package test4;

public class Test01 {	
	int[] getSum(int[] sum1,int[] sum2){
		int a=sum1.length,b=sum2.length;
		if(a<b){
			int[] sum11=new int[b];
			int i=0;
			for(;i<a;i++){
				sum11[i]=sum1[i]+sum2[i];
			}
			for(;i<b;i++){
				sum11[i]=sum2[i];
			}
			return sum11;
		}else{
			int[] sum11=new int[a];
			int i=0;
			for(;i<b;i++){
				sum11[i]=sum1[i]+sum2[i];
			}
			for(;i<a;i++){
				sum11[i]=sum1[i];
			}
			return sum11;
		}
	}
	
	
	public static void main(String[] args) {
		Test01 test=new Test01();
		int[] n1={5,8,4,12,1,9};
		int[] n2={11,2,6,3};
		int[] num=test.getSum(n1,n2);
		for(int i=0;i<num.length;i++){
			System.out.println(num[i]);
		}
	}

}


冰山点水
浏览 1580回答 1
1回答

不偏不易

if(a<b){             int i=0;             for(;i<a;i++){                 sum2[i]=sum1[i]+sum2[i];             }             return sum2;后面没有再用到sum2的部分,所以可以利用这一点,把值全放sum2里,此时是sum2长同理a>=b部分也可修改。
随时随地看视频慕课网APP

相关分类

Java
我要回答