剑指Offer_42_和为S的两个数字
题目描述
输入一个递增排序的数组和一个数字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的两个数字相关推荐
- 剑指Offer——和为s的两个数字
1.题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 2.代码实现 import java.util.Arra ...
- 剑指Offer 和为S的两个数字
题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. 思路 ...
- 剑指 Offer——和为 S 的两个数字
1. 题目 2. 解答 由于数组是已经排好序的,我们可以定义两个指针,第一个指针指向第一个元素,第二个指针指向最后一个元素,然后求出这两个元素的和,与目标和进行比较.若小于目标和,第一个指针向前移动: ...
- 【LeetCode笔记】剑指 Offer 57-. 和为s的两个数字 (Java、对撞双指针)
文章目录 题目描述 思路 & 代码 二刷 题目描述 很好的一道思路题,可以用来理解状态.双指针. 注意:数组有序,否则需要用哈希表来做. 思路 & 代码 双指针:从头.尾往里走,重点在 ...
- 剑指offer——面试题37:两个链表的第一个公共结点
剑指offer--面试题37:两个链表的第一个公共结点 20180906整理 Solution1: 时间复杂度为O(n2)O(n2)O(n^2)的垃圾算法 /* struct ListNode {in ...
- 剑指Offe 50:数组中重复的数字
第一种方法:遍历一遍数组,依次放入hash表.一旦遇到一个元素哈希表中已经有了,就是第一个重复的数字. class Solution { public:bool duplicate(int numbe ...
- 【LeetCode】剑指 Offer 62. 圆圈中最后剩下的数字
[LeetCode]剑指 Offer 62. 圆圈中最后剩下的数字 文章目录 [LeetCode]剑指 Offer 62. 圆圈中最后剩下的数字 一.动态规划 总结 一.动态规划 构建一个长度为 n ...
- 8. 返回数组里出现次数最多的数字_剑指offer 数组中出现次数超过一半的数字
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...
- 【剑指 Offe】11. 旋转数组的最小数字
题目:剑指 Offer 11. 旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数 ...
- 【剑指Offer】个人学习笔记_46_把数字翻译成字符串
目录 题目: [剑指 Offer 46. 把数字翻译成字符串](https://leetcode-cn.com/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan- ...
最新文章
- bootstrap select多选
- 进程互斥的要求与实现方法
- mysql查询表字段是否存在_Mysql判断表字段或索引是否存在
- 不能使用zsh或myzsh创建/切换 包含#的分支名(zsh: bad pattern: #xxx)
- 【设计模式】解释器模式
- CCF推荐期刊会议(A类)
- 正解:《Java 程序员的黄金 5 年》看完我才知道当时有多蠢
- python黑屏改成白底_Python 进行黑屏 PNR 的提取
- iOS获取UDID的方法及步骤
- 小工具:找出序列中的极值点
- linux老男孩学习决心书
- Unity-Live2d(模型与贴图建立联系,渲染,显示图片)
- openlayers 展示gif的2种方案
- PHP简介以及环境的安装
- windows10 No module named ‘win32con‘ 亲测解决
- 干货|Python爬虫如何设置代理IP
- linux东软培训答案,大连东软信息学院09级LINUX期中试卷及答案
- phoenix导出csv文件
- matlab仿真OLED出现的摩尔纹,邪恶再升级性能更完善 富士X-E2点评
- XMind 8破解激活为XMindPro 详细教程【亲测可用!!】
热门文章
- 现代Web开发需要学习的15大技术
- 欠阿里云 1 分钱,数据被删除
- 我是如何获取新知识的?
- vue中npm run dev运行项目不能自动打开浏览器! 以及 webstorm跑vue项目jshint一直提示错误问题的解决方法!...
- 医学图像填洞处理-image fill holes
- Android 在button 上添加imageview不显示
- Luogu4494 [HAOI2018]反色游戏 【割顶】
- JavaScript基础流程控制(3)
- 修正win10部署JDK8(使用JDK文件夹中的自带JRE)
- 如何调整iMindMap打印设置