leetcode刷題之路16 最接近的三數之和

2022-08-13 05:27:11 字數 744 閱讀 3460

給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。

例如,給定陣列 nums = [-1,2,1,-4], 和 target = 1.

與 target 最接近的三個數的和為 2. (-1 + 2 + 1 = 2).

這個題和之前的的三數之和有非常相近之處:

思路:依然是先排序,然後依次遍歷。這裡加上點約束來優化,首先是我們要知道,在遞增的陣列中,越往後遍歷三數之和越大,如果(三數之和-target)的值大於當前的差值(正數),那麼立刻停止迴圈。如果等於target則直接返回target。

#include #include 

#include

using

namespace

std;

int threesumclosest(vector& nums, int

target)

//cout << " " dif) break

; }}}

return

ans;

}int

main() ;

int target=82

;

int ans=threesumclosest(a,target);

std::cout

<< ans

}

leetcode刷題筆記16

面試題22.鍊錶中倒數第k個節點 輸入乙個鍊錶,輸出該鍊錶中倒數第k個節點。為了符合大多數人的習慣,本題從1開始計數,即鍊錶的尾節點是倒數第1個節點。例如,乙個鍊錶有6個節點,從頭節點開始,它們的值依次是1 2 3 4 5 6。這個鍊錶的倒數第3個節點是值為4的節點。definition for s...

leetcode刷題之路3 無重複字元的最長子串

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。字元陣列和字串的區別,c語言字元陣列和字串區別詳解 開始的想法是在對字元陣列設定兩個指標,初始化乙個在位置0乙個在位置1,ans初始化...

菜鳥刷題之路 Q16

乙個整型陣列裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。問題用hashmap解決是很容易想到的。使用異或運算的特點也可以解決該問題。將陣列的值作為key存入hashmap 1 當該值存在於hashmap中,刪除它 2 當該值不存在加入它 最後整個hashmap中剩...