- 给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。
class Solution {
public:
int triangleNumber(vector<int>& nums) {
int i, j, k;
int ans = 0;
sort(nums.begin(), nums.end());
int len = nums.size();
for(i = 0; i < len; ++i){
j = i + 1;
k = j + 1;
while(j < len){
while(k < len){
if(nums[i] + nums[j] <= nums[k]){
break;
}
++k;
}
ans += k - j - 1;
++j;
if(k == j){
++k;
}
}
}
return ans;
}
};