Leetcode錯題記錄1

2021-10-07 09:32:16 字數 1035 閱讀 5214

題目:

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

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

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

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

[[-1, 0, 1],

[-1, -1, 2]

]首先對陣列進行排序(一定要進行排序,後面的內容都是在排序陣列的前提下),排序後固定乙個數 nums[i],再使用左右指標指向 nums[i]後面的兩端,數字分別為 nums[l] 和 nums[r],計算三個數的和 sum 判斷是否滿足為 0,滿足則新增進結果集。

難點:需要去重的情況:

首先當nums[i]==nums[i-1]時,需要進行去重,因為之前nums[i-1]的所有情況已經全部加到結果集裡了,因為nums[i]==nums[i-1],如果再算一次的話會發生重複。

當num[l]==nums[l+1] 和 nums[r]==nums[r-1]時,也會發生重複。

特判:

當陣列為空時,或者陣列的長度小於3時,直接返回空集合。

當對陣列進行遍歷時,由於之前已經對陣列進行了排序操作,當nums[i]>0時,終止迴圈,因為後續的數都比nums[i]大,相加不會為0。

**

public list> threesum(int nums) 

arrays.sort(nums);

for(int i=0;i0)

if(i>0 && nums[i]==nums[i-1])

int l = i+1;

int r=len-1;

while(lwhile(ll++;

r--;

}else if(sum<0)else}}

return res;

}

Android Studio錯題記錄

unexpected top level exception com.android.dex.dexexception multiple dex files define l buildconfig 兩個androidmanifest.xml的包名重複了 另外,multiple dex files ...

錯題記錄(一)

1 資料庫 1 在關係模型中,每乙個二維表稱為乙個關係 2 2 作業系統 1 位向量 bit vector 的用處為磁碟空閒空間的管理 3 計算機網路 1 關於ip多播位址的描述 實現ip多播的分組使用的是ip多播位址 ip多播位址只能夠用於目的位址,而不能夠用於源位址 標準分類的d類位址是為ip多...

crm錯題記錄

一 el form rules問題 elemnrtui配合著vue是常見的後台管理系統的標配,但是element中的說明有些過於簡單 需要自己去嘗試 才能知道怎麼用,今天就記錄一下 我所遇到的表單驗證的坑。做個分享記錄,方便有同樣問題的人,也是對自己學習的積累。form 元件提供了表單驗證的功能,只...