• 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) {
    
        }
    }
    

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

  • 相关阅读:
    How to Analyze Java Thread Dumps
    Attention to encodings
    Inspect Memory Leak
    Java boolean operator &=, |= and ^=
    网站PC端和移动端,用户通过设备识别
    网页平滑过渡效果和自适用,三角图形,动效
    开机自动调用.bat文件且浏览器全屏展示
    react中使用屏保
    Axios的get和post请求写法
    React在componentWillMount中请求接口数据结束后再执行render
  • 原文地址:https://www.cnblogs.com/kaesar/p/15754373.html
Copyright © 2020-2023  润新知