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

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


🔥小龙报:个人主页

🎬作者简介:C++研发,嵌入式,机器人方向学习者

❄️个人专栏:《C语言》《算法》KelpBar海带Linux智慧屏项目

永远相信美好的事情即将发生

文章目录


前言

本系列讲解算法竞赛的数据结构在算法竞赛中,我们主要关心的其实是时间开销,空间上是基本够用的,因此我们是使用庞大的数组实现的话不多说冲!


一、移动零

1.1题目

链接:移动零

1.2算法原理

核心思想:数组分两块

1.3代码

c 复制代码
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代码

c 复制代码
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]);
        }
    }
};

总结 --- 每日励志时刻

相关推荐
小辉同志15 分钟前
207. 课程表
c++·算法·力扣·图论
CheerWWW22 分钟前
深入理解计算机系统——位运算、树状数组
笔记·学习·算法·计算机系统
kang_jin27 分钟前
C语言结构体入门:stu定义与成员使用
c语言·教程·编程语言·入门·结构体
上海合宙LuatOS30 分钟前
LuatOS扩展库API——【exremotecam】网络摄像头控制
开发语言·网络·物联网·lua·luatos
feng_you_ying_li36 分钟前
C++11,{}的初始化情况与左右值及其引用
开发语言·数据结构·c++
xiaotao13143 分钟前
JS new 操作符完整执行过程
开发语言·前端·javascript·原型模式
TE-茶叶蛋1 小时前
结合登录页-PHP基础知识点解析
android·开发语言·php
无巧不成书02181 小时前
Java包(package)全解:从定义、使用到避坑,新手零基础入门到实战
java·开发语言·package·java包
锅挤1 小时前
数据结构复习(第一章):绪论
数据结构·算法
skywalker_111 小时前
力扣hot100-5(盛最多水的容器),6(三数之和)
算法·leetcode·职场和发展