king-lxt / LeetCode-javasctipt

leetCode 答案
0 stars 0 forks source link

有效三角形的个数 #16

Open king-lxt opened 3 years ago

king-lxt commented 3 years ago

给定一个数组,求数组内可以组成三角形的元素

king-lxt commented 3 years ago
let triangleNumber = function(nums) {
    if(!nums || nums.length < 3) return 0
    let count = 0
    // 对数组排序
    nums.sort((a, b) => a - b) 
    for(let k = nums.length - 1; k > 1; k--){
        let i = 0, j = k - 1
        while(i < j){ 
            if(nums[i] + nums[j] > nums[k]){
                count += j - i
                j--
            } else {
                i++
            }
        }
    }       
    return count
}