德科机试一星题002
题目描述:
给定两个整数数组,arr1、arr2,数组元素按升序排列;
假设从arr1、arr2中分别取出一个元素,可构成一对元素;
现在需要取出k对元素,并对取出的所有元素求和,计算和的最小值;
注意:两对元素对应arr1、arr2的下标是相同的,视为同一对元素。
输入描述
输入两行数组arr1、arr2
每行首个数字为数组大小size, 0 < size <= 100
arr1,arr2中的每个元素e, 0< e <1000
接下来一行,正整数k 0 < k <= arr1.size * arr2.size
输出描述
满足要求的最小值
php 代码如下:
1 public function index() 2 { 3 $arr1=explode(' ',fgets(STDIN)); 4 $arr2=explode(' ',fgets(STDIN)); 5 $k=fgets(STDIN); 6 self::solution($arr1,$arr2,$k); 7 } 8 9 private static function solution($arr1,$arr2,$k) 10 { 11 $arr_sum=[]; 12 foreach ($arr1 as $v1){ 13 foreach ($arr2 as $v2){ 14 $arr_sum[]=$v1+$v2; 15 } 16 } 17 sort($arr_sum); 18 $re=0; 19 for($i=0;$i<$k;$i++){ 20 $re+=$arr_sum[$i]; 21 } 22 echo $re; 23 }

浙公网安备 33010602011771号