🔥小龙报:个人主页 🎬作者简介:C++研发,嵌入式,机器人方向学习者 ❄️个人专栏:《算法通关指南 》 ✨ 永远相信美好的事情即将发生
本专栏聚焦算法题实战,系统讲解算法模块:以《c++编程》,《数据结构和算法》《基础算法》《算法实战》 等几个板块以题带点,讲解思路与代码实现,帮助大家快速提升代码能力***ps:本章节题目分两部分,比较基础笔者只附上代码供大家参考,其他的笔者会附上自己的思考和讲解,希望和大家一起努力见证自己的算法成长***
链接:移动零

核心思想:数组分两块

class Solution {
public:
void moveZeroes(vector<int>& nums) {
int cur = -1;
for(int i = 0;i < nums.size();i++)
{
if(nums[i]) //非零
{
swap(nums[++cur],nums[i]);
}
}
}
};链接:颜色分类

核心思想:数组分三块

class Solution {
public:
void sortColors(vector<int>& nums) {
int left = -1;
int right = nums.size();
int i = 0;
while(i < right)
{
if(nums[i] == 0)
swap(nums[i++],nums[++left]);
else if(nums[i] == 1)
i++;
else if(nums[i] == 2)
swap(nums[i],nums[--right]);
}
}
};