道听途说的技术面:找出正整数序列中连续几个数和为Num的区间
来源:互联网 发布:java重定向到百度 编辑:程序博客网 时间:2024/05/16 08:53
题:有一个正整数区间,找出符合和为num的连续区间,不存在则返回-1
思路:用一个sum存储连续区间和,一个下标存储区间起始位置,一个下标存储区间结束位置。找不到返回-1即可。
代码:
#include <iostream>using namespace std;// if find i and j, return i<<32 & j// else return -1void findSubArray(int *arr, int size, int num, int *result){ int sum=0; int left=0; int right=0; sum=arr[left]; while(sum!=num&&right<size&&left<size){ if(sum>num){ sum-=arr[left++]; }else{ // for the 1st time arr[left]<num if(right<left) right=left; // for out of range. if(right<size-1)sum+=arr[++right]; // stop the loop elseright++; } } if(sum!=num){ result[0]=-1; result[1]=-1; }else{ result[0]=left; result[1]=right; }}int main(){ int arr[]={10, 8, 0, 3, 6, 2}; int re[2]; findSubArray(arr, 1, 10, re); cout << re[0] << ":" << re[1] << endl; findSubArray(arr, 1, 7, re); cout << re[0] << ":" << re[1] << endl; findSubArray(arr, 1, 11, re); cout << re[0] << ":" << re[1] << endl; findSubArray(arr, 2, 18, re); cout << re[0] << ":" << re[1] << endl; findSubArray(arr, 2, 17, re); cout << re[0] << ":" << re[1] << endl; findSubArray(arr, 2, 20, re); cout << re[0] << ":" << re[1] << endl; findSubArray(arr, 6, 9, re); cout << re[0] << ":" << re[1] << endl; findSubArray(arr, 6, 11, re); cout << re[0] << ":" << re[1] << endl; findSubArray(arr, 6, 12, re); cout << re[0] << ":" << re[1] << endl;}
输出:
0:0-1:-1-1:-10:1-1:-1-1:-11:41:3-1:-1
- 道听途说的技术面:找出正整数序列中连续几个数和为Num的区间
- 找出所有和为n的连续正整数序列
- 和为n的连续正整数序列
- 和为 n 的连续正整数序列
- 和为N的连续正整数序列
- 和为N的连续正整数序列
- 和为sum的连续正整数序列
- 和为 s 的连续正整数序列
- 41 - 找出数组中和为sum的 2个数字 | 找出和为sum的连续正整数序列
- [剑指offer]和为s的两个数 ; 和为s的连续正整数序列
- 打印所有和为s的连续正整数序列(至少含两个数)
- 如何在一堆正整数中(数组arr)找出与给定正整数(num)最接近的那个数(result)
- 面试题41:和为s的两个数字 VS 和为s的连续正整数序列
- 输入正整数,求出和为该正整数的全部连续正整数序列
- 打印和为N的连续正整数序列
- 【剑指offer】和为S的连续正整数序列
- 剑指offer 42 和为S的连续正整数序列
- 输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有可能的正整数序列。
- struts2的 action 的 result 的各个属性简介
- Linux tcpdump{转+超小新心得}
- OpenJTAG下载bootloader 备忘
- MyEclipse 项目有红感叹号
- __int64 与long long 的区别
- 道听途说的技术面:找出正整数序列中连续几个数和为Num的区间
- 解决mysql卡死的问题 彻底优化mysql
- Web Services的基本原理
- VIM 技巧记积累
- 秒杀多线程系列篇
- wzplayer 移植ios接近尾声
- c++值传递、地址传递、引用传递
- Mysql my.ini 配置文件详解
- IIC