《算法通关指南:数据结构和算法篇 --- 顺序表相关算法题》--- 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]);
        }
    }
};

总结 --- 每日励志时刻

相关推荐
_wyt0017 小时前
洛谷 B3930 [GESP202312 五级] 烹饪问题 题解
c++·gesp
LDR0069 小时前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术9 小时前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
通信小呆呆9 小时前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
码云数智-园园9 小时前
C++20 Modules 模块详解
java·开发语言·spring
benben0449 小时前
强化学习之DQN算法族(基于gymnasium开发)
算法
swordbob10 小时前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
小小工匠10 小时前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化
源分享10 小时前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm