《算法通关指南:数据结构和算法篇 --- 顺序表相关算法题》--- 1.移动零,2.颜色分类
《算法通关指南:数据结构和算法篇 — 顺序表相关算法题》— 1.移动零,2.颜色分类

🔥小龙报:个人主页
🎬作者简介:C++研发,嵌入式,机器人方向学习者
❄️个人专栏:《C语言》《算法》KelpBar海带Linux智慧屏项目
✨永远相信美好的事情即将发生

文章目录
- 《算法通关指南:数据结构和算法篇 --- 顺序表相关算法题》--- 1.移动零,2.颜色分类
- 前言
- 一、移动零
- 1.1题目
- 1.2算法原理
- 1.3代码
- 二、颜色分类
- 2.1题目
- 2.2算法原理
- 2.3代码
- 总结 --- 每日励志时刻
前言
本系列讲解算法竞赛的数据结构在算法竞赛中,我们主要关心的其实是时间开销,空间上是基本够用的,因此我们是使用庞大的数组实现的话不多说冲!
一、移动零
1.1题目
链接:移动零

1.2算法原理
核心思想:数组分两块

1.3代码
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]);}}}
};
二、颜色分类
2.1题目
链接:颜色分类

2.2算法原理
核心思想:数组分三块

2.3代码
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]);}}
};
总结 — 每日励志时刻

