【leetcode】双指针:有效三角形的个数 and 和为s的两个数
文章目录
- 1. 有效三角形的个数
- 1.题目
- 2.讲解算法原理
- 3.代码
- 2.和为s的两个数
- 1.题目
- 2.思路
- 3.代码
1. 有效三角形的个数
1.题目
示例1解析:
2.讲解算法原理
3.代码
class Solution {
public:int triangleNumber(vector<int>& nums) {sort(nums.begin(), nums.end());int n = nums.size();int m = n - 1, ret = 0;while(m >= 2){int left = 0, right = m - 1;while(left < right){if(nums[left] + nums[right] > nums[m]){ret += right - left;right--;}else{left++;}}m--;}return ret;}
};
2.和为s的两个数
1.题目
2.思路
3.代码
class solution{public:vector<int> twoSum(vector<int>& nums, int target){int left = 0, right = nums.size() - 1;while(left < right){if(nums[left] + nums[right] < target)left++;else if(nums[left] + nums[right] > tarrget)right--;else return {nums[left], nums[right]};}// 照顾编译器return {-1, -1};}};