求三數之和為零的三元組集合

2021-08-21 08:14:50 字數 956 閱讀 5058

題目要求三數之和為零,即:a+b+c=0; 那麼若滿足b+c = -a的話就滿足題目的第乙個要求啦。假設-a = tem 那麼 b+c=tem就說明滿足條件。這樣的話三數之和變成了兩數之和,再兩個數字和的基礎上,只需要找到乙個tem為定點以後,然後再判斷陣列中剩下的數字兩兩相加是否等於tem即可。若用暴力求解的話會超出時間限制。此時,假設該陣列是乙個有序陣列(公升序)的話,那麼我們可以知道,從左到右數字時依次增加的。此時設定索引left,mid,right,然後以最左邊的點為定點(tem),只需要看nums[mid]+nums[right]+nums[left]?=0即:nums[mid]+nums[right]=-nums[left] ---> nums[mid]+nums[right]=tem。

而且題目中要求不能重複,那麼當nums[left]判斷後,需要判斷之前的nums[left-1]和現在的nums[left]是否是相同的數字,若是的話,left繼續往後移動,直到移動到不同的數字為止。同理,mid right也是這樣操作。

根據以上兩個思路之後,我們知道這個思路是建立在有序陣列上的。所以我們首先要將陣列進行公升序使得為有序陣列後再進行之後的操作。

按位與為零的三元組

給定乙個整數陣列 a,找出索引為 i,j,k 的三元組,使得 0 i a.length 0 j a.length 0 k a.length a i a j a k 0,其中 表示按位與 and 操作符。暴力法看,這道題就是把先算出a i a j 然後再遍歷一遍陣列,計算能夠和其相與結果為0的元素。其...

2879 求三元組個數

單點時限 2.0 sec 記憶體限制 256 mb 有 n 1 n 500 個正整數,求由這些整數組成的滿足條件的三元組 的個數 a,b,c 兩兩互質,或 a,b,c 兩兩不互質。注意 不考慮 a,b,c 的排列順序,即 a,b,c 與 b,a,c 視為同乙個三元組。n 個整數可能有重複,不同位置的...

等差三元組

題目 和是2組不同的等差三元組,除了等差的性質之外,還有個奇妙的地方在於 5 2 3 2 1 2 7 2 5 2 3 2 n 15。同這對三元組也存在同樣的性質 19 2 15 2 11 2 7 2 5 2 3 2 n 15。這種成對的三元組還有很多。當n 15時,有3對,分別是和,和,和。現給出乙...