题解 | #和为S的两个数字#

和为S的两个数字

https://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b

#include <algorithm>
#include <vector>
class Solution {
public:
    vector<int> FindNumbersWithSum(vector<int> array,int sum) {
        if(array.empty()) return vector<int>{};// 解决空数组情况
        int l = 0, r = 0;
        for(int j = 0; j < array.size(); ++j)
        {
            if(find(array.begin()+j, array.end(), sum - array[j]) != array.end())
            {
                l = array[j];
                r = *(find(array.begin()+j, array.end(), sum - array[j]));
                if(l != r)// 目的获取满足条件的第一组
                    break;
            }
        }
        if(l!=r){//两个值都不一样,直接返回即可
            return vector<int>{l, r};
        }else if(count(array.begin(), array.end(), r) > 1){// 对于相等值情况,注意两种情形一个是元素的确存在两个同值的;另外,r,l访问到非初始化区域,此时会初始化为0,这时需要剔除
            return vector<int>{l, r};
        }
        else {
            return vector<int>{};// 没找到,返回空即可
        }
    }
};

挤挤刷刷! 文章被收录于专栏

记录coding过程

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 11:30
仁者伍敌:kpi都懒得刷了属于是
点赞 评论 收藏
分享
真烦好烦真烦:豆包润色了自己没看看吗,再说了,都说豆包是愚蠢且勤快的大学生,ds才是聪明的研究生,怎么敢让豆包写论文的
你们的毕业论文什么进度了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务