和为s的两个数

和为S的两个数字

http://www.nowcoder.com/questionTerminal/390da4f7a00f44bea7c2f3d19491311b

看了题解上大神的方法,都是双指针法,增加答案的多样性,于是我将我穷举法ac的答案贴了出来

class Solution {
public:
    vector<int> FindNumbersWithSum(vector<int> array,int sum) {
        vector<vector<int>> vec;
        vector<int> ans;
        for(int i=0;i<array.size();i++){
            int s = 0;
            for(int j=i;j<array.size();j++){
                for(int k=i+1;k<array.size();k++){
                    s = array[j] + array[k];
                    if(s == sum){
                        ans.push_back(array[j]);
                        ans.push_back(array[k]);
                        vec.push_back(ans);
                        ans.clear();
                        break;
                    }
                }
            }
        }
        int min = vec[0][0]*vec[0][1];
        for(vector<int> ans:vec){
            if(min>ans[0]*ans[1]){
                min = ans[0]*ans[1];
            }
        }
        vector<int> res;
        for(vector<int> ans:vec){
            if(min == ans[0]*ans[1]){
                res = ans;
            }
        }
        return res;
    }
};
全部评论

相关推荐

哥_留个offer先:跟他说,你这个最好用c#,微软就用c#Java不适合这个项目
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务