思路
先从小到大排序,再3层遍历 只需要判断第 3 个数不要大于或等于前 2 个数之和即可。
源码
/** * @param {number[]} nums * @return {number} */var triangleNumber = function(nums) { let len = nums.length; if(len < 3){ return 0; } let count = 0; nums.sort((a, b) => a - b); for(let i = 0; i < len; ++i){ for(let j = i + 1; j < len; ++j){ for(let k = j + 1; k < len; ++k){ if(nums[k] >= nums[i] + nums[j]){ break; } else{ count++; } } } } return count;};复制代码