leetcode 611. 有效三角形的个数 medium
题目描述:
解题思路:
- 首先对数组排序。
- 固定最长的一条边,运用双指针扫描
可能对这种排完序的数组,就得想想双指针?
代码:
class Solution {
public:
int triangleNumber(vector<int>& nums) {
if (nums.size() < 3)
return 0;
sort(nums.begin(), nums.end(), greater<int>());
int res = 0;
for (int i = 0; i <nums.size() -2; i++) {
int m = i+1, n = nums.size()-1;
while (m != n){
if (nums[m] + nums[n] > nums[i]){
res += n-m;
m++;
} else{
n--;
}
}
}
return res;
}
};