码迷,mamicode.com
首页 > 编程语言 > 详细

一个排好序的数组,找出两数之和为x的所有组合【双指针】

时间:2018-07-02 13:06:59      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:i++   void   mes   while   pre   pac   指针   clu   --   

#include <bits/stdc++.h>
using namespace std;
const int N = 1e6,INF = 0x3f3f3f3f;
int a[N];
int n,x;
void fun(int n)
{
    int left = 0, right = n-1;
    while(left < right)
    {
        int ans=a[left] + a[right];
        if(ans == x)
        {
            cout<<a[left]<<' '<<a[right]<<endl;
            left++, right--;
        }
        else if(ans < x)
        {
            left++;
        }
        else if(ans > x)
        {
            right--;
        }
    }
}
int main()
{
    cin>>n>>x;
    for(int i=0;i<n;i++) {
        cin>>a[i];
    }
    fun(n);
}
/*
9 16
1 2 3 5 6 7 11 13 15
*/

一个排好序的数组,找出两数之和为x的所有组合【双指针】

标签:i++   void   mes   while   pre   pac   指针   clu   --   

原文地址:https://www.cnblogs.com/Roni-i/p/9253303.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!