给定一个包含非负整数的数组
nums
,返回其中可以组成三角形三条边的三元组个数。示例 1:
输入: nums = [2,2,3,4] 输出: 3 解释:有效的组合是: 2,3,4 (使用第一个 2) 2,3,4 (使用第二个 2) 2,2,3示例 2:
输入: nums = [4,2,3,4] 输出: 4提示:
1 <= nums.length <= 1000
0 <= nums[i] <= 1000
/** * @param {number[]} nums * @return {number} */ var triangleNumber = function(nums) { const n = nums.length; nums.sort((a,b) => a - b); let ans = 0; for(let i = 0;i < n;i++){ for(let j = i + 1;j < n;j++){ let left = j + 1,right = n -1,k = j; while(left <= right){ const mid = Math.floor((left + right) / 2); if(nums[mid] < nums[i] + nums[j]){ k = mid; left = mid +1; }else{ right = mid - 1; } } ans += k - j; } } return ans; };
leetcode611. 有效三角形的个数
最新推荐文章于 2024-10-01 23:05:47 发布