LeetCode 167. Two Sum II - Input array is sorted

Two Sum II

題目

這個solution用two pointers從兩邊往中間找,如果numbers[l] + numbers[r] == target 就返回l r組成的數組,但記住一定要加1, 因為l r是從0開始的index。 如果和比target大,那就是現在的numbers[r]大了,用r--選擇向左一位的元素,l同理。循環直至找到最終結果。
我發的題目會有些是有鎖的,我會把所有有鎖的題目的截圖發上來,沒有鎖的就不一定咯:p

class Solution {

public:

    vectortwoSum(vector& numbers, int target) {

        int l = 0, r = numbers.size() - 1;

        while (l < r) { 

            if (numbers[l] + numbers[r] == target)

                return {l + 1, r + 1};

            else if (numbers[l] + numbers[r] > target)

                r--;  

            else

               l++;

        }

        return {0, 0};

    }

};
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容