文档章节

【剑指offer】和为s的两个数字

o
 osc_x4h57ch8
发布于 2018/04/24 15:53
字数 270
阅读 0
收藏 0

精选30+云产品,助力企业轻松上云!>>>

原创博文,转载请注明出处!

# 题目

image

# 思路

      首先定义两个指针,第一个指针p指向数组的第一个数字,第二个指针q指向数组的最后一个数字。如果p+q=s,则找到要找的数字;如果p+q<s,则p向后移动一个数字;如果p+q>s,则q向前移动一个数字。

image

# 代码

#include <iostream>
#include <vector>
using namespace std;
/* 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得他们的和正好是s。如果有多对数字的和等于s,输入任意一对即可*/

class Solution{
public:
    vector<int> FindNumbersWithSum(vector<int> array,int sum)
    {
        // 存储结果
        vector<int> res;

        // 特殊输入
        if(array.size() <= 1)
            return res;

        // 辅助变量
        int p = 0;
        int q = array.size()-1;
        int Sum = 0;
        // 查找结果
        while(p<q)
        {
            Sum = array[p] + array[q];

            if(Sum == sum)
            {
                res.push_back(array[p]);
                res.push_back(array[q]);
                cout<<array[p]<<endl;
                cout<<array[q]<<endl;
                break;
            }

            if(Sum < sum)
                ++p;
            else
                --q;
        }
        return res;
    }
};
int main()
{
    vector<int> data={1,2,4,7,11,13,14};
    int s =15;
    Solution solution;
    solution.FindNumbersWithSum(data,s);

    return 0;
}
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

Git本地分支和远程分支关联

转载:https://blog.csdn.net/cherishhere/article/details/52606884 转载:https://blog.zengrong.net/post/1746.html 转载:https://blog.csdn.net/xinghuowuzhao/article/details/78663526 转......

osc_ur9jjorb
刚刚
0
0
移动应用测试方法与思路

标签(空格分隔): 浅谈移动应用测试方法与思路 在 GUI 自动化测试这个系列,我讲了很多基于浏览器的业务测试的内容,你可能会说,现在移动 App 大行其道,对移动应用测试的方法和思路才更重...

osc_avdbd8s3
2分钟前
0
0
搜索所有Git历史记录中的字符串? [重复] - Search all of Git history for a string? [duplicate]

问题: This question already has an answer here: 这个问题在这里已有答案: How to grep Git commit diffs or contents for a certain word? 如何grep Git为某个单词提交差异或内容? 8 ...

fyin1314
3分钟前
0
0
css实现圆形倒计时效果

实现思想: 1.最外层包裹内部的div1(.box) 2.内部左右两边div2(.left_box和.right_box),宽度为div1的一半,通过overflow:hidden隐藏其内部的div 3.在左右两个div2中各有一个div3(.left_item...

osc_sg74u54s
4分钟前
0
0
python语言中threading.Thread类的使用方法

1. 编程语言里面的任务和线程是很重要的一个功能。在python里面,线程的创建有两种方式,其一使用Thread类创建 # 导入Python标准库中的Thread模块 from threading import Thread # 创建一...

osc_q5urtsdm
4分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部