题目描述

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

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

解题思路

利用两个指针分别指数组开始和结尾,然后将两指针的值相加,大于给定值,那么尾指针向前移动,因为此时,如果移动开始指针,那么所有的值和结尾指针相加都大于给定值。同理,比给定值小,那么向后移动开始指针。与给定值相同的就是要找的值。

实现

import java.util.ArrayList;
public class Solution {public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {ArrayList<Integer> list = new ArrayList<>();int f = 0, l = array.length - 1;int mlt = Integer.MAX_VALUE;while (f < l){int fn = array[f];int ln = array[l];if (fn + ln > sum){l --;}else if (fn + ln < sum){f ++;}else {if (fn * ln < mlt){mlt = fn * ln;list.clear();list.add(fn);list.add(ln);}f ++;}}return list;}
}

转载于:https://www.cnblogs.com/ggmfengyangdi/p/5798233.html

剑指Offer_42_和为S的两个数字相关推荐

  1. 剑指Offer——和为s的两个数字

    1.题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 2.代码实现 import java.util.Arra ...

  2. 剑指Offer 和为S的两个数字

    题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. 思路 ...

  3. 剑指 Offer——和为 S 的两个数字

    1. 题目 2. 解答 由于数组是已经排好序的,我们可以定义两个指针,第一个指针指向第一个元素,第二个指针指向最后一个元素,然后求出这两个元素的和,与目标和进行比较.若小于目标和,第一个指针向前移动: ...

  4. 【LeetCode笔记】剑指 Offer 57-. 和为s的两个数字 (Java、对撞双指针)

    文章目录 题目描述 思路 & 代码 二刷 题目描述 很好的一道思路题,可以用来理解状态.双指针. 注意:数组有序,否则需要用哈希表来做. 思路 & 代码 双指针:从头.尾往里走,重点在 ...

  5. 剑指offer——面试题37:两个链表的第一个公共结点

    剑指offer--面试题37:两个链表的第一个公共结点 20180906整理 Solution1: 时间复杂度为O(n2)O(n2)O(n^2)的垃圾算法 /* struct ListNode {in ...

  6. 剑指Offe 50:数组中重复的数字

    第一种方法:遍历一遍数组,依次放入hash表.一旦遇到一个元素哈希表中已经有了,就是第一个重复的数字. class Solution { public:bool duplicate(int numbe ...

  7. 【LeetCode】剑指 Offer 62. 圆圈中最后剩下的数字

    [LeetCode]剑指 Offer 62. 圆圈中最后剩下的数字 文章目录 [LeetCode]剑指 Offer 62. 圆圈中最后剩下的数字 一.动态规划 总结 一.动态规划 构建一个长度为 n ...

  8. 8. 返回数组里出现次数最多的数字_剑指offer 数组中出现次数超过一半的数字

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

  9. 【剑指 Offe】11. 旋转数组的最小数字

    题目:剑指 Offer 11. 旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数 ...

  10. 【剑指Offer】个人学习笔记_46_把数字翻译成字符串

    目录 题目: [剑指 Offer 46. 把数字翻译成字符串](https://leetcode-cn.com/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan- ...

最新文章

  1. bootstrap select多选
  2. 进程互斥的要求与实现方法
  3. mysql查询表字段是否存在_Mysql判断表字段或索引是否存在
  4. 不能使用zsh或myzsh创建/切换 包含#的分支名(zsh: bad pattern: #xxx)
  5. 【设计模式】解释器模式
  6. CCF推荐期刊会议(A类)
  7. 正解:《Java 程序员的黄金 5 年》看完我才知道当时有多蠢
  8. python黑屏改成白底_Python 进行黑屏 PNR 的提取
  9. iOS获取UDID的方法及步骤
  10. 小工具:找出序列中的极值点
  11. linux老男孩学习决心书
  12. Unity-Live2d(模型与贴图建立联系,渲染,显示图片)
  13. openlayers 展示gif的2种方案
  14. PHP简介以及环境的安装
  15. windows10 No module named ‘win32con‘ 亲测解决
  16. 干货|Python爬虫如何设置代理IP
  17. linux东软培训答案,大连东软信息学院09级LINUX期中试卷及答案
  18. phoenix导出csv文件
  19. matlab仿真OLED出现的摩尔纹,邪恶再升级性能更完善 富士X-E2点评
  20. XMind 8破解激活为XMindPro 详细教程【亲测可用!!】

热门文章

  1. 现代Web开发需要学习的15大技术
  2. 欠阿里云 1 分钱,数据被删除
  3. 我是如何获取新知识的?
  4. vue中npm run dev运行项目不能自动打开浏览器! 以及 webstorm跑vue项目jshint一直提示错误问题的解决方法!...
  5. 医学图像填洞处理-image fill holes
  6. Android 在button 上添加imageview不显示
  7. Luogu4494 [HAOI2018]反色游戏 【割顶】
  8. JavaScript基础流程控制(3)
  9. 修正win10部署JDK8(使用JDK文件夹中的自带JRE)
  10. 如何调整iMindMap打印设置