公尺哈遊最新面試題 有效三角形的個數

2021-10-10 18:42:45 字數 1715 閱讀 5034

題目:

611. 有效三角形的個數

給定乙個包含非負整數的陣列,你的任務是統計其中可以組成三角形三條邊的三元組個數。

示例 1:

輸入: [2,2,3,4]

輸出: 3

解釋:有效的組合是:

2,3,4 (使用第乙個 2)

2,3,4 (使用第二個 2)

2,2,3

注意:陣列長度不超過1000。

陣列裡整數的範圍為 [0, 1000]。

思路:

我們的思路是先將陣列排序,

我們判斷條件是 當ac a,b,c三條邊肯定可以組成三角形

因此我們每次迴圈時保證 j=nums.size()-1-----0 也就是固定最大值

left=0;

right=j-1;

然後找到滿足他條件的 第乙個出現的 nums[left]+nums[right]>nums[j]

我們求 left到right 找出兩個數 看有多少組成公式 組合問題 (**中沒有其實用的是組合的思想,注意可以包含重複數字)

當nums[left]+nums[right]<=nums[j] left++;

**:

class

solution

else}}

return res;}}

;

題目:

15. 三數之和

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

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

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

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

[[-1, 0, 1],

[-1, -1, 2]

]通過次數367,604

思路:

**:

class

solution

sort

(nums.

begin()

,nums.

end())

;//先排序

if(nums[0]

>

0|| nums[nums.

size()

-1]<0)

for(

int i=

0;i<=nums.

size()

-3;i++

)是倒數第乙個數

if(i>

0&&nums[i]

==nums[i-1]

)//當前元素與之間元素相同

int left=i+1;

int right=nums.

size()

-1;while

(leftleft++

;while

(left==nums[right-1]

) right--;}

else

if(sum<0)

else

if(sum>0)

}}return result_vv;}}

;

leetcode 有效三角形的個數

給定乙個包含非負整數的陣列,你的任務是統計其中可以組成三角形三條邊的三元組個數。示例 1 輸入 2,2,3,4 輸出 3 解釋 有效的組合是 2,3,4 使用第乙個 2 2,3,4 使用第二個 2 2,2,3 注意 陣列長度不超過1000。陣列裡整數的範圍為 0,1000 1.此題類似於求三數之和為...

Leetcode 有效三角形的個數

給定乙個包含非負整數的陣列,你的任務是統計其中可以組成三角形三條邊的三元組個數。示例 1 輸入 2,2,3,4 輸出 3 解釋 有效的組合是 2,3,4 使用第乙個 2 2,3,4 使用第二個 2 2,2,3注意 陣列長度不超過1000。陣列裡整數的範圍為 0,1000 時間複雜度o n3 o n3...

611 有效三角形的個數

題目描述 給定乙個包含非負整數的陣列,你的任務是統計其中可以組成三角形三條邊的三元組個數。示例 1 輸入 2,2,3,4 輸出 3 解釋 有效的組合是 2,3,4 使用第乙個 2 2,3,4 使用第二個 2 2,2,3 注意 陣列長度不超過1000。陣列裡整數的範圍為 0,1000 方法1 1 先對...