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

总结 --- 每日励志时刻

相关推荐
Boilermaker19922 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
MM_MS2 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
独自破碎E2 小时前
【二分法】寻找峰值
算法
꧁Q༒ོγ꧂2 小时前
LaTeX 语法入门指南
开发语言·latex
njsgcs2 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
alonewolf_992 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
mit6.8243 小时前
位运算|拆分贪心
算法
古城小栈3 小时前
Rust 迭代器产出的引用层数——分水岭
开发语言·rust
ghie90903 小时前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab
恋爱绝缘体13 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit