LEetCode 167. 两数之和 II - 输入有序数组(双指针法)

简介: LEetCode 167. 两数之和 II - 输入有序数组(双指针法)

167. 两数之和 II - 输入有序数组


双指针法

特别easy的题,左右双指针遍历就行,时间复杂度 O ( n )

class Solution
{
public:
    vector<int> twoSum(vector<int> &numbers, int target)
    {
        vector<int> a;
        int n = numbers.size();
        int left = 0, right = n - 1;
        while (left < right)
        {
            int sum = numbers[left] + numbers[right];
            if (sum == target)
            {
                a.push_back(left + 1);
                a.push_back(right + 1);
                break;
            }
            else if (sum > target)
            {
                right--;
            }
            else
            {
                left++;
            }
        }
        return a;
    }
};

最开始想直接暴力过,优化还是超时。想着easy题都写不出来,想重开了。

目录
相关文章
|
3月前
【LeetCode 16】15.三数之和(双指针法)
【LeetCode 16】15.三数之和(双指针法)
42 1
|
3月前
leetCode(删除有序数组中的重复项)
如何在不使用额外空间的情况下,通过双指针法原地删除有序数组中的重复项。
39 2
|
12天前
|
算法 容器
【算法】——双指针算法合集(力扣)
移动零,复写零,快乐数,盛最多水的容器,有效三角形的个数,和为s的两个数(查找总价格为目标值的两个商品 ),三数之和,四数之和
|
3月前
|
C++
Leetcode第一题(两数之和)
这篇文章介绍了解决LeetCode第一题“两数之和”的两种方法:暴力法和哈希表法,并提供了相应的C++代码实现。
48 0
Leetcode第一题(两数之和)
|
3月前
【LeetCode 48】108.将有序数组转换为二叉搜索树
【LeetCode 48】108.将有序数组转换为二叉搜索树
46 0
|
3月前
|
存储 C++ 容器
【LeetCode 13】1.两数之和
【LeetCode 13】1.两数之和
17 0
|
3月前
【LeetCode 03】双指针法总结
【LeetCode 03】双指针法总结
23 0
|
5月前
|
算法
LeetCode第80题删除有序数组中的重复项 II
文章介绍了LeetCode第80题"删除有序数组中的重复项 II"的解法,利用双指针技术在O(1)空间复杂度内原地删除重复元素,并总结了双指针技术在处理有序数组问题中的应用。
LeetCode第80题删除有序数组中的重复项 II
|
5月前
|
算法
LeetCode第88题合并两个有序数组
文章分享了LeetCode第88题"合并两个有序数组"的解法,通过从后向前的合并策略避免了数组元素的前移,使用三个指针高效地完成了合并过程。