• JZ042和为 S 的两个数字


    和为 S 的两个数字

    题目描述

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

    • 返回值描述:
    • 对应每个测试案例,输出两个数,小的先输出。

    题目链接: 和为 S 的两个数字

    代码

    import java.util.ArrayList;
    
    /**
     * 标题:和为 S 的两个数字
     * 题目描述
     * 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
     * 返回值描述:
     * 对应每个测试案例,输出两个数,小的先输出。
     * 题目链接:
     * https://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b?tpId=13&&tqId=11195&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
     */
    public class Jz42 {
    
        public ArrayList<Integer> FindNumbersWithSum(int[] array, int sum) {
            ArrayList<Integer> result = new ArrayList<>();
            int first = 0, second = 0, index = 0;
            for (int i = 0; i < array.length - 1; i++) {
                int start = array[i];
                for (int j = 1; j < array.length && j >= index; j++) {
                    if (array[i] + array[j] == sum) {
                        index = j;
                        if (first == 0 || array[i] * array[j] < first * second) {
                            first = array[i];
                            second = array[j];
                        }
                        break;
                    }
                }
            }
            if (first == 0 && second == 0) {
                return result;
            }
            result.add(first);
            result.add(second);
            return result;
        }
    
        public static void main(String[] args) {
    
        }
    }
    

    【每日寄语】 人生重要的不是所站的位置,而是所朝的方向。

  • 相关阅读:
    II第十二章:(1)SpringCloud Alibaba简介
    II第十三章:(1)SpringCloud Nacos注册中心和配置中心
    第二章:MQTT协议原理
    MQTT【目录】
    Linux系统解析域名的先后顺序【转帖】 沐春风
    软件产品规格说明书为什么是软件缺陷存在最多的地方
    软件缺陷
    动态测试
    因果图
    因果图中的4种基本关系
  • 原文地址:https://www.cnblogs.com/kaesar/p/15754373.html
Copyright © 2020-2023  润新知