【leetcode】对撞指针题目总结

  • 对撞指针是双指针算法之一。
  • 对撞指针从两端向中间迭代数组。一个指针从始端开始,另一个从末端开始。
  • 对撞指针的终止条件是两个指针相遇。
  • 对撞指针常用于排序数组

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

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

27. 移除元素

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int left = 0, right = nums.size();
        while (left < right) {
            if (nums[left] == val) {
                nums[left] = nums[right-1];
                right--;
            } else {
                left++;
            }
        }
        return left;
    }
};

125. 验证回文串

class Solution {
public:
    bool isPalindrome(string s) {
        string sgood;
        for (char ch: s) {
            if (isalnum(ch)) {
                sgood += tolower(ch);
            }
        }
        int n = sgood.size();
        int left = 0, right = n - 1;
        while (left < right) {
           if (sgood[left] != sgood[right]) {
                return false;
            }
            ++left;
            --right;
        }
        return true;
    }
};

11. 盛最多水的容器

class Solution {
public:
    int maxArea(vector<int>& height) {
        int res = 0, i = 0, j = height.size() - 1;
        while (i < j) {
            res = max(res, min(height[i], height[j]) * (j - i));
            if (height[i] < height[j]) {
                i++;
            } else {
                j--;
            }
        }
        return res;
    }
};

  • leetcode 对撞指针 解法题目
  • 7. 整数反转(easy)
  • 9.回文数(easy)
  • 27.移除元素(easy)
  • 125.验证回文串(easy)
  • 167.两数之II-输入有序数组(easy)
  • 190.颠倒二进制位(easy)
  • 344.反转字符串(easy)
  • 345.反转字符串中的元音字母(easy)
  • 11.盛水最多的容器(medium)


 

相关推荐

  1. leetcode指针题目总结

    2024-04-28 00:38:02       33 阅读
  2. leetcode】栈题目总结

    2024-04-28 00:38:02       34 阅读
  3. leetcode】优先队列题目总结

    2024-04-28 00:38:02       27 阅读
  4. leetcode】二分搜索题目总结

    2024-04-28 00:38:02       32 阅读
  5. leetcode】滑动窗口题目总结

    2024-04-28 00:38:02       36 阅读
  6. leetcode中sql题目分类与总结

    2024-04-28 00:38:02       66 阅读
  7. leetcode】链表排序题目总结

    2024-04-28 00:38:02       32 阅读
  8. leetcode】链表反转题目总结

    2024-04-28 00:38:02       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-28 00:38:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-28 00:38:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-28 00:38:02       82 阅读
  4. Python语言-面向对象

    2024-04-28 00:38:02       91 阅读

热门阅读

  1. OpenCV如何使用分水岭算法进行图像分割

    2024-04-28 00:38:02       36 阅读
  2. 【贪心算法】Leetcode 55. 跳跃游戏【中等】

    2024-04-28 00:38:02       32 阅读
  3. 【运维】Gitlab备份

    2024-04-28 00:38:02       34 阅读
  4. 探究C++20协程(4)——协程中的调度器

    2024-04-28 00:38:02       25 阅读
  5. 清华大学 【战略管理的逻辑】全6讲笔记

    2024-04-28 00:38:02       24 阅读
  6. 【MySQL】数据库概述

    2024-04-28 00:38:02       32 阅读
  7. 【MySQL】基础知识

    2024-04-28 00:38:02       28 阅读
  8. k8s部署grafana

    2024-04-28 00:38:02       28 阅读
  9. Swift 中的条件语句:if 和 else

    2024-04-28 00:38:02       27 阅读
  10. 优雅实现uniapp返回上一页传参

    2024-04-28 00:38:02       32 阅读
  11. 通过idea插件一键将jar包发布到阿里云服务器部署

    2024-04-28 00:38:02       26 阅读
  12. 要搭建基于Python、Django和Oracle的框架怎么搭

    2024-04-28 00:38:02       30 阅读