611. 有效三角形的个数
生活随笔
收集整理的這篇文章主要介紹了
611. 有效三角形的个数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
611. 有效三角形的個數
給定一個包含非負整數的數組,你的任務是統計其中可以組成三角形三條邊的三元組個數。
示例 1:
輸入: [2,2,3,4] 輸出: 3 解釋: 有效的組合是: 2,3,4 (使用第一個 2) 2,3,4 (使用第二個 2) 2,2,3注意:
- 數組長度不超過1000。
- 數組里整數的范圍為 [0, 1000]。
解題思路
先將數組從小到大進行排序,固定一條邊i,遍歷另一條邊j,我們發現當j在不斷增大的時候,我們的第三邊也可以繼續在原來的基礎上加大,因此我們只需要維護第三邊的指針k
代碼
class Solution {public int triangleNumber(int[] nums) {Arrays.sort(nums);int n=nums.length,res=0;for(int i=0;i<n;i++){int k=i;for (int j=i+1;j<n;j++){while (k+1<n&&nums[k+1]<nums[i]+nums[j])k++;res+= Math.max(0,k-j);}}return res;} }總結
以上是生活随笔為你收集整理的611. 有效三角形的个数的全部內容,希望文章能夠幫你解決所遇到的問題。