【剑指offer-Java版】41和为s的两个数字VS和为s的连续正数序列
和为S的两个数字以及和为S的连续正数序列:输入是一个递增排序的数组,查找其中一对满足和为S的数,输出。如果有多对,输出其中一对
public void FindNumbersWithSum(int nums[], int sum){if(nums == null) return;int indexL = 0;int indexR = nums.length - 1;while(indexL < indexR){if(nums[indexL] + nums[indexR] < sum) indexL++; else if(nums[indexL] + nums[indexR] > sum) indexR--;else {System.out.println("nums["+indexL+"] + nums["+indexR+"] = " + nums[indexL] + " + " + nums[indexR] + " = " + sum );indexL++;indexR--;}}}public void FindContinuousSequence(int sum){if(sum < 3) return;int mid = (1 + sum) / 2;int small = 1;int big = 2;int curSum = small;while(small < mid){ // 至少有两个数,而且是递增排序的,所以small最多为sum的一半if(curSum < sum){curSum += big;big++;}else if(curSum > sum){curSum -= small;small++;}else if(curSum == sum){for(int i=small; i<big; i++){System.out.print(i + " ");}System.out.println();curSum += big;big++;}}}}
测试代码:
public class _Q41Test extends TestCase {_Q41<?> numWithSum = new _Q41();public void test(){int nums1[] = {1, 2, 4, 7, 11, 15};int sum1 = 15;numWithSum.FindNumbersWithSum(nums1, sum1);int nums2[] = {1, 2, 3, 4, 5, 6, 7, 8};int sum2 = 15;numWithSum.FindContinuousSequence(nums2, sum2);numWithSum.FindContinuousSequence(sum2);}}
【剑指offer-Java版】41和为s的两个数字VS和为s的连续正数序列相关推荐
- 41.和为s的两个数字 VS 和为s的连续正数序列
为什么80%的码农都做不了架构师?>>> 题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,输出任意一对即可. ...
- 剑指offer java版 test3—从尾到头打印链表
标题:剑指offer java版 test3-从尾到头打印链表 题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 解答:知识不够全面,用ArrayList做的 但是看到大佬们还可以 ...
- [剑指offer]面试题41:和为s的两个数字VS和为s的连续正数序列
面试题41:和为s的两个数字VS和为s的连续正数序列 题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,输出任意一对即可. 代码如下: b ...
- 剑指offer java版 test42—找出和为S的两个数,左右夹逼法(双指针法)
前言:受上一题的启发,这题自己也编出来了.在碰到这种有序数列的时候,经常会用到双指针法,一个指左边,一个指右边,然后依照规则移动,增加或缩小范围.很实用. 题目: 输入一个递增排序的数组和一个数字S, ...
- 剑指offer java版(三)
二叉搜索树的后序遍历 问题描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 解题思路 对于后序遍历来说, ...
- 剑指offer java版(一)
二维数组中的查找 问题描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数 ...
- 剑指offer没有java版吗_剑指Offer(Java版) 持续更新中
面试题2 单例(之前有整理,略) 面试题3 二维数组中的查找 public boolean find(int target, int [][] array) { boolean found = fal ...
- [剑指offer][JAVA]面试题第[09]题[用两个栈实现队列][LinkedList]
[问题描述][简单] 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能.(若队列中没有元 ...
- 剑指offer面试题[41]-和为s的两个数VS和为s的连续正数序列
题目描述 题目1: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输 ...
最新文章
- 修改MySql默认存储引擎为InnoDB,启动报错
- 13、Java Swing事件监听:事件处理模型和事件监听器
- 思科路由器怎么安装?
- intellij idea 部署项目的时候 图中application context 写不写有什么关系?有什么作用?...
- 独家:Havok 发布新的 AI 中间件
- ci框架 mysql 超时时间_mysql 字符集和校验规则( CHARSET amp; COLLATE)
- uva 1252——Twenty Questions
- 声笔双拼单字效率分析
- Visual Paradigm中文乱码
- jquery的开发版、mini版是的意思和使用场合
- c52单片机c语言编程,c52单片机c语言编程怎样实现阴历查询
- 信息系统安全等级保护备案任务详单
- 水箱建模最小二乘法_北师大版小学数学下册五年级第四单元长方体(二)整理复习电子课本练习同步教学视频...
- python and or 详解
- Q96:过程纹理(Procedural Texture)(0)——概述
- 12. MySQL 函数
- 定制C/C++缩进风格
- 虚拟机xp系统联网问题
- 我的MIT代数拓扑笔记
- C++模板的概念 定义和使用
热门文章
- kodi教程_KODI清理缓存插件安装设置教程
- python开源报表系统_流程设计器、表单设计器和简单报表管理开源OA系统smart-web...
- C++对象模型4——多重继承的对象内存模型、vptr与vtbl的创建与重置的时机、不要在含有虚函数的类的构造函数中调用memset
- python导入xlsxwriter要安装什么吗_Python 模块:XlsxWriter 的使用
- 我来悟微服务(3)-需求管理
- Django restfulframework 开发相关知识 整理
- 业界 | Facebook F8开发者大会首日:扎克伯格走心演讲,VR硬件发售
- Spring源码系列:BeanDefinition源码解析
- SQL查询分析器使用
- vs2013 类名颜色显示黑色,无法修改