zoukankan      html  css  js  c++  java
  • 和为S的两个数字

    题目描述

    输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。

    输出描述:

    对应每个测试案例,输出两个数,小的先输出。
     1 import java.util.ArrayList;
     2 
     3 /**
     4  * 
     5  * @author gentleKay
     6  * 题目描述
     7  * 输入一个递增排序的数组和一个数字S,在数组中查找两个数,
     8  * 使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
     9  * 输出描述:
    10  * 对应每个测试案例,输出两个数,小的先输出。
    11  */
    12 
    13 public class Main41 {
    14 
    15     public static void main(String[] args) {
    16         // TODO Auto-generated method stub
    17         int[] array = {1,2,4,7,11,16};
    18         System.out.println(Main41.FindNumbersWithSum(array, 10));
    19     }
    20     
    21     public static ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
    22         ArrayList<ArrayList<Integer>> list = new ArrayList<>();
    23         for (int i=0;i<array.length;i++) {
    24             for (int j=i+1;j<array.length;j++) {
    25                 int num = 0;
    26                 ArrayList<Integer> arr = new ArrayList<>();
    27                 arr.add(array[i]);
    28                 arr.add(array[j]);
    29                 num = array[i] + array[j];
    30                 if (num == sum) {
    31                     list.add(arr);
    32                     break;
    33                 }
    34             }
    35         }
    36         
    37         ArrayList<Integer> arraylist = new ArrayList<>();
    38         if (list.size() == 0) {
    39             return arraylist;
    40         }
    41         for (int i=0;i<list.size();i++) {
    42             int mult = 1;
    43             mult = list.get(i).get(0) * list.get(i).get(1);
    44             arraylist.add(mult);
    45         }
    46 
    47         int index = 0; // 用于标记 最小值的位置
    48         int temp = arraylist.get(0);
    49         for (int i=1;i<arraylist.size();i++) {
    50             if (temp > arraylist.get(i)) {
    51                 temp = arraylist.get(i);
    52                 index = i;
    53             }
    54         }
    55         return list.get(index);    
    56     }
    57 }
  • 相关阅读:
    ios自动布局
    Android真机调试流程
    Window phone应用中的多触点手势解读以及toolKit.dll和Microsoft.Phone.dll 冲突问题
    软件质量可视化与软件测试
    软件测试中不可忽视的 Warning
    软件测试作业1 -- 关于c++项目中类相互调用的问题与解决
    软件测试 总结
    系统测试,集成测试,单元测试的联系与区别
    白盒测试
    关于UI测试的一些实例操作
  • 原文地址:https://www.cnblogs.com/strive-19970713/p/11177352.html
Copyright © 2011-2022 走看看