思路
先从小到大排序,再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;
};
复制代码
转载于:https://juejin.im/post/5bec1b29e51d456c5712771b
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101322.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...