• 和为S的两个数字


    题目:

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

    解答:

     1 import java.util.ArrayList;
     2 
     3 public class Solution {
     4 
     5     public static void main(String[] args) {
     6         int[] arr = {1,2,5,7,9};
     7         int sum = 7;
     8         System.out.println(FindNumbersWithSum(arr, sum));
     9     }
    10 
    11     public static ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
    12         ArrayList<Integer> res = new ArrayList<>();
    13 
    14         if(array == null || array.length == 0) {
    15             return res;
    16         }
    17 
    18         int left = 0;
    19         int right = array.length-1;
    20 
    21         while(left < right) {
    22             if(array[left]+array[right] == sum) {
    23                 res.add(array[left]);
    24                 res.add(array[right]);
    25                 break;
    26 
    27             } else if(array[left]+array[right] < sum) {
    28                 left++;
    29             } else {
    30                 right--;
    31             }
    32         }
    33 
    34         return res;
    35     }
    36 }

  • 相关阅读:
    @Order
    uri和url , 以及末尾加不加 '/'
    windows删除右键新建多余选项
    Typora 指南
    常见状态码/HttpStatusCode
    final 修饰符
    4. shiro-整合redis
    springboot 整合mybatis 一级缓存失效
    springboot查看具体访问的url片段
    JavaSE:NIO
  • 原文地址:https://www.cnblogs.com/wylwyl/p/10469553.html
Copyright © 2020-2023  润新知