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

    题目描述

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

    输出描述:

    对应每个测试案例,输出两个数,小的先输出。



    设置2个指针分别指向有序数组的左右2头(最小值,最大值),移动2个指针向中间夹逼

     1 import java.util.ArrayList;
     2 public class Solution {
     3     public ArrayList<Integer> FindNumbersWithSum(int [] a,int sum) {
     4         ArrayList<Integer> res = new ArrayList<Integer>();
     5         if(a.length<2) return res;
     6         
     7         int i =0,j = a.length-1;
     8         while(i<j){
     9             if(a[i]+a[j]==sum){
    10                 res.add(a[i]);
    11                 res.add(a[j]);
    12                 return res;
    13             }
    14             else if(a[i]+a[j]<sum)
    15                 i++;
    16             else 
    17                 j--;
    18         }
    19         return res;//如果没找到,返回空list
    20     }
    21 }
  • 相关阅读:
    python 安装包总结
    python wmi使用
    Jquery
    查看linux操作系统位数
    三元
    git clone 指定分支的内容
    慕课网
    http://amazeui.org 后天框架
    tp between
    git pull
  • 原文地址:https://www.cnblogs.com/zle1992/p/8182434.html
Copyright © 2011-2022 走看看