和为S的两个数字(剑指offer)

跟風遠走 提交于 2020-03-04 15:33:36

题目描述

输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 
输出描述:
对应每个测试案例,输出两个数,小的先输出。
 1 class Solution {
 2 public:
 3     vector<int> FindNumbersWithSum(vector<int> array,int sum) {
 4        int len = array.size();
 5         vector<int> vet;
 6         int chengji = INT_MAX;
 7         for (int i = 0; i < len; i++)
 8         {
 9             if (find(array.begin(),array.end(),sum - array[i]) != array.end()&&chengji>array[i] * (sum - array[i]))
10             {
11                     vet.clear();
12                     chengji = array[i] * (sum - array[i]);
13                     vet.push_back(array[i]);
14                     vet.push_back(sum - array[i]);
15             }
16         }
17         return vet;
18     }
19 };

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!