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

总结 --- 每日励志时刻

相关推荐
奔跑吧邓邓子7 小时前
【C语言实战(67)】从0到1:C语言多线程编程实战(POSIX线程版)
c语言·多线程编程·开发实战·posix
安卓开发者7 小时前
第4讲:理解Flutter的灵魂 - “Everything is a Widget”
开发语言·javascript·flutter
再睡一夏就好7 小时前
【C++闯关笔记】使用红黑树简单模拟实现map与set
java·c语言·数据结构·c++·笔记·语法·1024程序员节
im_AMBER7 小时前
Leetcode 43
笔记·学习·算法·leetcode
ceffans7 小时前
PDF文档中表格以及形状解析-后续处理(线段生成最小多边形)
c++·windows·算法·pdf
mifengxing7 小时前
力扣每日一题——接雨水
c语言·数据结构·算法·leetcode·动态规划·
魔云连洲8 小时前
前端树形结构过滤算法
前端·算法
小龙报8 小时前
《算法通关指南:数据结构和算法篇 --- 顺序表相关算法题》--- 询问学号,寄包柜,合并两个有序数组
c语言·开发语言·数据结构·c++·算法·学习方法·visual studio
序属秋秋秋8 小时前
《Linux系统编程之开发工具》【编译器 + 自动化构建器】
linux·运维·服务器·c语言·c++·自动化·编译器