和爲S的兩個數/TwoSum

題目描述
輸入一個遞增排序的數組和一個數字S,在數組中查找兩個數,是的他們的和正好是S,如果有多對數字的和等於S,輸出兩個數的乘積最小的。
和leetcode 的two sum相似,設置一對起始位置,第一找到的一對數值就是乘積最小的

AC代碼

class Solution {
public:
    vector<int> FindNumbersWithSum(vector<int> array,int sum) {
        vector<int> rst;
        int start=0,end=array.size()-1;
        while(start<end){
            if(array[start]+array[end]==sum){
                rst.push_back(array[start]);
                rst.push_back(array[end]);
                break;
                }
            while (array[start]+array[end]<sum) start++;
            while (array[start]+array[end]>sum) end--;
        }
        return rst;

    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章