每日一題(2020 06 12)15 三數之和

2021-10-07 03:18:24 字數 1036 閱讀 6177

難度 中等

給你乙個包含 n 個整數的陣列nums,判斷nums中是否存在三個元素 *a,b,c ,*使得 a + b + c = 0 ?請你找出所有滿足條件且不重複的三元組。

**注意:**答案中不可以包含重複的三元組。

示例:

給定陣列 nums = [-1, 0, 1, 2, -1, -4],

滿足要求的三元組集合為:

[ [-1, 0, 1],

[-1, -1, 2]

]

方法:排序 + 雙指標

首先將陣列的元素從小到大排序,然後將每個位置的數字設為三元組中的第乙個元素 a ,並從該元素後面使用雙指標查詢其它兩個元素 b 和 c。雙指標 left 和 right 開始時為 left = i + 1 ,right = nums.length - 1

在查詢過程中注意去除掉重複元素

class

solution

arrays.

sort

(nums)

;for

(int i =

0; i < len; i++

)//去重

if(i >

0&& nums[i]

== nums[i -1]

)int left = i +1;

int right = len -1;

while

(left < right)

while

(left < right && nums[right]

== nums[right -1]

) left++

; right--;}

else

if(sum <0)

else

if(sum >0)

}}return ans;

}}

每日一題(三) 查詢

1.輸入乙個數n,然後輸入n個數,其值各不相同,再輸入乙個值x,輸出這個值在這個陣列中的下標誌 從0開始,若不在陣列中輸出 1 includeint main int x int ans 1 scanf d x for int i 0 i n i printf d n ans return 0 2....

寒假每日一題(三)

寒假每日一題之瘋狂補題 小明正在玩乙個 翻硬幣 的遊戲。桌上放著排成一排的若干硬幣。我們用 表示正面,用 o 表示反面 是小寫字母,不是零 比如,可能情形是 oo oooo 如果同時翻轉左邊的兩個硬幣,則變為 oooo oooo 現在小明的問題是 如果已知了初始狀態和要達到的目標狀態,每次只能同時翻...

每日一題 1

題目詳情 peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n n的 裡填數,規則 對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n n的 列印出來吧。輸入描述 多組測試資料 資...