PART2 双指针

移动零

lc.283

cpp 复制代码
class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int l = 0;
        for (int i = 0; i < nums.size(); i++) {
            if (nums[i] != 0) {
                swap(nums[i], nums[l]);
                l++;
            }
        }
    }
};

判断子序列

lc.392

cpp 复制代码
class Solution {
public:
    bool isSubsequence(string s, string t) {
        if (s.size() == 0) {
            return true;
        }
        if (s.size() > t.size()) {
            return false;
        }
        int currS = 0, currT = 0;
        while (currT < t.size() && currS < s.size()) {
            if (s[currS] == t[currT]) {
                currS++;
            }
            currT++;
        }
        return currS == s.size() && currT <= t.size();
    }
};

盛最多水的容器

lc.11

cpp 复制代码
class Solution {
public:
    int maxArea(vector<int>& height) {
        int left = 0, right = height.size() - 1;
        int maxV = 0;
        while (left < right) {
            int w = right - left;
            int h = min(height[left], height[right]);
            maxV = max(maxV, h * w);
            if (height[left] <= height[right]) {
                left++;
            } else {
                right--;
            }
        }
        return maxV;
    }
};

K和数对的最大数目

lc.1679

cpp 复制代码
class Solution {
public:
    int maxOperations(vector<int>& nums, int k) {
        int count = 0;
        int left = 0, right = nums.size() - 1;
        sort(nums.begin(), nums.end());
        while (left < right) {
            if (nums[left] + nums[right] == k) {
                count++;
                left++;
                right--;
            } else if (nums[left] + nums[right] < k) {
                left++;
            } else {
                right--;
            }
        }
        return count;
    }
};
相关推荐
清水迎朝阳5 小时前
客户端软件 — 用户统计方案
服务器·c++·客户端·用户统计
Re.不晚5 小时前
挑战做100道力扣算法- DAY1
算法·leetcode·职场和发展
蓝悦无人机5 小时前
《Planning algorithms》读书笔记——第1章 引言
算法·读书笔记·规划算法·lavalle
Sagittarius_A*6 小时前
分组密码基础(二):Feistel 结构与 DES 的设计思想
算法·信息安全·密码学·des·数论
青山木6 小时前
Hot 100 --- 搜索插入位置
java·数据结构·算法·leetcode
再卷也是菜6 小时前
C++17(下)
c++
alexwang2116 小时前
HDU 4348 详细题解
c++·算法·题解·hdu·主席树·可持久化数据结构·可持久化线段树
程序员zgh6 小时前
C++ 拷贝赋值运算符 详解
c语言·开发语言·c++
可编程芯片开发7 小时前
基于分段变步长搜索RMDCFT算法的天基雷达空间机动目标检测方法MATLAB仿真,对比RMDCFT算法
算法