【面试题41】和为s的两个数字VS和为s的连续整数序列
【题目描述】
输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得他们的和正好是s。如果有多对数字的和等于s,输出任意一队即可。
【解决方案】
设置前后指针,根据所指数字的和来移动前后指针,直到找到目标数字。
我的代码实现,仅供参考:
1 public static bool FindNumsWithSum(int[] arr, int sum, ref int numA, ref int numB) 2 { 3 if (arr == null || arr.Length < 1) 4 return false; 5 6 int start = 0; 7 int end = arr.Length - 1; 8 int temp = 0; 9 10 while (arr[start] + arr[end] != sum && start < end) 11 { 12 temp = arr[start] + arr[end]; 13 14 if (temp > sum) 15 end--; 16 else 17 start++; 18 } 19 20 if (start == end) 21 return false; 22 else 23 { 24 numA = arr[start]; 25 numB = arr[end]; 26 } 27 28 return true; 29 }
【本题扩展】
输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。
例如数组15,由于1+2+3+4+5=4+5++6=7+8=15,所以结果打印出3个连续序列1~5,4~6和7~8。
时间有限,只提供代码。
我的代码实现,仅供参考:
1 public static void FindContinuousSequence(int sum) 2 { 3 int start = 1; 4 int end = 2; 5 int curSum = start + end; 6 7 while (start < (sum + 1) / 2) 8 { 9 if (curSum < sum) 10 { 11 end++; 12 curSum += end; 13 } 14 else if (curSum > sum) 15 { 16 curSum -= start; 17 start++; 18 } 19 else 20 { 21 for (int i = start; i <= end; i++) 22 { 23 Console.Write(i); 24 } 25 Console.WriteLine(); 26 27 curSum -= start; 28 start++; 29 } 30 } 31 }
转载于:https://www.cnblogs.com/HuoAA/p/4833618.html
【面试题41】和为s的两个数字VS和为s的连续整数序列相关推荐
- 剑指offer面试题[41]-和为s的两个数VS和为s的连续正数序列
题目描述 题目1: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输 ...
- 【剑指offer-Java版】41和为s的两个数字VS和为s的连续正数序列
和为S的两个数字以及和为S的连续正数序列:输入是一个递增排序的数组,查找其中一对满足和为S的数,输出.如果有多对,输出其中一对 public void FindNumbersWithSum(int n ...
- 41.和为s的两个数字 VS 和为s的连续正数序列
为什么80%的码农都做不了架构师?>>> 题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,输出任意一对即可. ...
- 剑指Offer - 面试题57. 和为s的两个数字(双指针)
1. 题目 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,则输出任意一对即可. 示例 1: 输入:nums = [2,7,11,15], ta ...
- 剑指offer面试题57. 和为s的两个数字(双指针)
题目描述 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,则输出任意一对即可. 思路 详见链接 代码 class Solution:def tw ...
- [剑指offer]面试题41:和为s的两个数字VS和为s的连续正数序列
面试题41:和为s的两个数字VS和为s的连续正数序列 题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,输出任意一对即可. 代码如下: b ...
- golang interface 类型转换_Golang面试题41道
Golang面试题41道 大家好,这一期呢,我们来说一下golang的面试题. 第1题什么是golang? go是一个开源的编程语言,由谷歌开发的.这门语言是设计用来做系统级的编程的. 第2题为什么要 ...
- 程序员面试题精选100题(10)-排序数组中和为给定值的两个数字[算法]
题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字.要求时间复杂度是O(n).如果有多对数字的和等于输入的数字,输出任意一对即可. 例如输入数组1.2 ...
- java面试题41 下面字段声明中哪一个在interface主体内是合法的? ()
java面试题41 下面字段声明中哪一个在interface主体内是合法的? () A private final static int answer = 42; B public static in ...
最新文章
- find查找多个文件
- php常用的十个代码片段,转载
- 2018年最实用的6个机器学习项目
- spring mvc @ModelAttribute 基本类型 自定义对象解析流程
- python机器学习入门(Day1:Numpy)
- java rmi漏洞工具_学生会私房菜【20200924】Weblogic WLS核心组件反序列化命令执行突破(CVE20182628)漏洞复现...
- 安卓逆向_13 --- AndroidStudio + Smalidea 动态调试 smali 代码【APK可调试】、gradle 配置
- mapreduce程序开发的一些总结
- java string 练习_JAVA基础练习之String
- java-设计模式(行为型)-【命令模式】
- wshShell.SendKeys模拟键盘操作
- 阿里云上如何过等保,收费标准怎么样?
- 2022年京东618活动规则:618满减规则为299减50
- Python数据爬取之中国人口数据【附整理好的分省数据下载链接】
- 百度网盘网页端视频倍速方法
- 哪些行业适合开发小程序商城
- 修改mac终端的前缀
- c语言注释含义,C语言编程规范——注释
- 用java实现的文本编辑器可以媲美windows自带的编辑器吗?(功能全,超详细)
- 常见的网络协议与网络要素的介绍