zoukankan      html  css  js  c++  java
  • 8 分钟写出代码(华为笔试题)

    package cn.cat.test;
    
    import java.util.Arrays;
    
    public class Test {
    
    	/** 8 分钟写出代码(华为笔试题)
    	 * @Description: 
    	 * @author gwj
    	 * @Created 2017年9月7日 下午2:00:55 
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		int[] a = new int[]{1,2,3,4,5};
    		int[] b = new int[]{6,7,8,9,10};
    		
    		int arrLen = a.length;
    		int[] ab = new int[arrLen * 2];
    		//合并两个数组
    		for (int i = 0, len = arrLen; i < len; i++) {
    			ab[i] = a[i];
    			ab[len + i] = b[i];
    		}
    		
    		//排序数组
    		Arrays.sort(ab);
    		
    		int aIndex = 0;
    		int aMax = 0;
    		int bIndex = 0;
    		int bMax = 0;
    		
    		for (int i = ab.length - 1; i >= 0; i--) {
    			int temp = ab[i];
    			//如果数组A被填满,或者是数组B还未开始添加数据,则均填入B数组中。
    			if (aIndex >= arrLen || bIndex == 0) {
    				b[bIndex++] = temp;
    				bMax += temp;
    				continue;
    			} 
    			
    			//如果数组B被填满,或者是数组A还未开始添加数据,则均填入A数组中。
    			if (bIndex >= arrLen || aIndex == 0) {
    				a[aIndex++] = temp;
    				aMax += temp;
    				continue;
    			}
    			
    			//根据比较来判断数值放入哪个组中。
    			if ((aMax + temp) > (bMax + temp)) {
    				b[bIndex++] = temp;
    				bMax += temp;
    			} else {
    				a[aIndex++] = temp;
    				aMax += temp;
    			}
    			
    			
    		}
    		
    		//打印数组元素和总和值
    		System.out.println(Arrays.toString(a) + " sum=" + aMax);
    		System.out.println(Arrays.toString(b) + " sum=" + bMax);
    	}
    
    }
    

    8 分钟写出代码(华为笔试题)



    题目:


    有两个数组a,b,大小都为n,数组元素的值任意,无序;


    要求:


    通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小。8分钟写出代码!



    java版本的代码实现:

    题目:


    有两个数组a,b,大小都为n,数组元素的值任意,无序;


    要求:


    通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小。8分钟写出代码!

  • 相关阅读:
    5.4 类型转换
    IntelliJ IDEA 创建Web项目(全教程)
    Spring IoC 依赖注入的方法大全 XML配置方式
    20秒教你如何写maven2的pom文件的依赖包
    数据库面试题之COUNT(*),COUNT(字段),CONUT(DISTINCT 字段)的区别
    Oracle中的单行函数
    Select 子句后的别名,在where条件中不能使用
    Oracle SQL*Plus命令
    使用js请求Servlet时的路径
    idea 创建运行web项目时,报错: Can not issue executeUpdate() for SELECTs解决方案
  • 原文地址:https://www.cnblogs.com/catgwj/p/7503304.html
Copyright © 2011-2022 走看看