思路
先從小到大排序,再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;
};
複製程式碼