编辑
2023-11-25
算法题
00
请注意,本文编写于 532 天前,最后修改于 532 天前,其中某些信息可能已经过时。

目录

双指针
暴力

题目

有多种解法,一种是排序+双指针,其实数据量只有50,直接暴力也可以

双指针

cpp
class Solution { public: int countPairs(vector<int>& nums, int target) { sort(nums.begin(), nums.end()); int result = 0; int left = 0, right = nums.size() - 1; while (left < right) { int sum = nums[left] + nums[right]; if (sum < target) { // 如果当前的和小于目标值,说明所有右指针在 left 右侧的元素都可以与 left 组成满足条件的下标对 result += right - left; left++; } else { // 如果当前的和不小于目标值,减小右指针,尝试找到更小的和 right--; } } return result; } };

暴力

cpp
class Solution { public: int countPairs(vector<int>& nums, int target) { int result = 0; int n = nums.size(); for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { int sum = nums[i] + nums[j]; if (sum < target) { result++; } } } return result; } };

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!