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

    一、题目

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

    二、解法

     1 import java.util.ArrayList;
     2 public class Solution {
     3     public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
     4         ArrayList<Integer> al = new ArrayList<>();
     5         int i = 0;//前面的指针
     6         int j = array.length-1;//后面的指针
     7         if(array == null || array.length <2)
     8             return al;
     9         //通过不断移动指针,i,j距离相差越大,则乘机越小
    10         while(i < j){
    11             if(array[i] + array[j] == sum){
    12                 al.add(array[i]);
    13                 al.add(array[j]);
    14                 return al;
    15             }else if(array[i] + array[j] > sum){
    16                 j--;
    17             }else{
    18                 i++;
    19             }
    20         }
    21         return al;
    22     }
    23 }
  • 相关阅读:
    keras_12_keras自带的Applications
    keras_11_keras中示例数据集
    keras_10_回调函数 Callbacks
    Runloop
    SDWebImage
    NSOperation
    单例模式
    GCD
    一文读懂汉明码
    聊聊SPOOLing技术
  • 原文地址:https://www.cnblogs.com/fankongkong/p/7460119.html
Copyright © 2011-2022 走看看