57剑指OFFER之和为S的数字

参考资料:

[1]无,使用普适性算法

思路:

找到一个数,再去找另一个数,如果找到了就返回。

自己的解答:
class Solution {
public:
    vector<int> FindNumbersWithSum(vector<int> array,int sum) {
        
        //整体思路:找到一个数,再去找另一个数,如果找到了就返回。
        vector<int> result;
        
        //如果是空的,return 空的
        if(array.empty())
            return result;
        int found=0;
        
        for(int i=0;i<array.size();i++)
        {
            for(int j =i+1;j<array.size();j++)
            {
                if(array[i]+array[j] == sum)
                {
                    found =1;
                    if(array[i]<array[j])
                    {
                        result.push_back(array[i]);
                        result.push_back(array[j]);
                        break;
                    }
                    else
                    {
                        result.push_back(array[j]);
                        result.push_back(array[i]);
                        break;
                    }
                }
            }
            if(found ==1)//因为只能返回一组,找到了就撤
                break;
            
        }
        return result;
    
        
    }
};
标准答案:
class Solution {
public:
    vector<int> FindNumbersWithSum(vector<int> array,int sum) {
        
    
    //看到题就这么想的写法,普适性算法,用折半查找进行改进。
    vector<int> num;
    int i = 0;
    int j = 0;
    int found =0;
    for(i=0;i<array.size();i++)
    {
        for(j=i+1;j<array.size();j++)
        {
            if((sum-array[i])==array[j])
            {
                found = 1;
                if(array[i]<array[j])
                {
                    num.push_back(array[i]);
                    num.push_back(array[j]);
                    break;
                }
                else
                {
                    num.push_back(array[j]);
                    num.push_back(array[i]);
                    break;
                }
            }
        }
        if(found ==1)
            break;
    }
    return num;
    
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容