給定乙個包括 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中剩...