[【C++算法】43.分治_快排_颜色分类(过渡)

ops/2024/12/18 21:20:03/

文章目录

    • 题目链接:
    • 题目描述:
    • 解法
    • C++ 算法代码:


题目链接:

75. 颜色分类


题目描述:

6a25181416af4062e07010e7ce3dc3c8


解法

分治:就是分而治之

这题作为过渡,不使用分治。

6ca6431101cf65040db86fd9a640f9aa

解法:三指针

ef3231e28365ec989f12799b39dc1abd

6a499d309502e468f06c01f343c64359

bfac9b8577b2cc550bb6f45353131bfb


C++ 算法代码:

class Solution 
{public:void sortColors(vector<int>& nums) {int n = nums.size();// 初始化指针:// left 指向最后一个已知的 0 的下一个位置// right 指向第一个已知的 2 的前一个位置// i 是当前遍历的索引int left = -1, right = n, i = 0;while(i < right) // 当 i 小于 right 时继续遍历{// 如果当前元素是 0,将其与 left 指针指向的元素交换// 然后移动 left 和 i 指针if(nums[i] == 0) swap(nums[++left], nums[i++]);// 如果当前元素是 1,不需要交换,只需移动 i 指针else if(nums[i] == 1) i++;// 如果当前元素是 2,将其与 right 指针指向的元素交换// 然后移动 right 指针,但 i 指针不移动,因为交换过来的元素需要重新检查else swap(nums[--right], nums[i]);}}
};

http://www.ppmy.cn/ops/143004.html

相关文章

wazuh-modules-sca-scan

sca模块主函数wm_sca_main -> wm_sca_start 检查policy文件中的每一个项目wm_sca_check_policy static int wm_sca_check_policy(const cJSON * const policy, const cJSON * const checks, OSHash *global_check_list) {if(!policy) {return 1;}const cJSON * const id c…

PostgreSQL数据库序列信息查询

PostgreSQL序列信息查询 说明&#xff1a; 在PostgreSQL数据库中序列和表都是序列的对象。 数据库中不应该存在孤儿序列&#xff0c;序列应该和表对应的字段绑定起来。绑定后删除表或表对应的字段后&#xff0c;序列会自动被删除。 创建测试表和序列 create table test_t(…

Unity读取、新建Excel表格

把dll资源解压后&#xff0c;全部导入到unity中的Plugins文件下面 资源放在标题下方&#xff0c;可以自行下载 使用教程 引入命名空间 using SimpleExcel;。这个命名空间下主要有两个类&#xff1a;WorkBook和Sheet。WorkBook用于对整个excel文件的操作&#xff0c;如创建、打开…

Perl 引用

Perl 引用 Perl&#xff0c;作为一种灵活而强大的编程语言&#xff0c;广泛用于系统管理、网络编程、GUI开发等领域。在Perl编程中&#xff0c;引用&#xff08;References&#xff09;是一个核心概念&#xff0c;它允许变量引用其他数据&#xff0c;从而创建复杂的数据结构&a…

使用Nexus3搭建npm私有仓库

一、npm介绍 npm的全称是Node Package Manager&#xff0c;它是一个开放源代码的命令行工具&#xff0c;用于安装、更新和管理Node.js模块。npm是Node.js的官方模块管理器&#xff0c;它允许用户从一个集中的仓库中下载和安装公共的Node.js模块&#xff0c;并将这些模块集成到…

Flink是什么?Flink技术介绍

官方参考资料&#xff1a;Apache Flink — Stateful Computations over Data Streams | Apache Flink Flink是一个分布式流处理和批处理计算框架&#xff0c;具有高性能、容错性和灵活性。以下是关于Flink技术的详细介绍&#xff1a; 一、Flink概述 ‌定义‌&#xff1a;Fli…

深入理解STL list erase

1、list erase后&#xff0c;当前的迭代器失效&#xff0c;返回指向下一个节点的迭代器 #include<list> #include<iostream> #include<vector> using namespace std;int main() {list<int> ls;ls.push_back(1);ls.push_back(2);ls.push_back(3);list&…

LeetCode hot100-82

https://leetcode.cn/problems/pascals-triangle/description/?envTypestudy-plan-v2&envIdtop-100-liked 118. 杨辉三角 已解答 简单 相关标签 相关企业 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。在「杨辉三角」中&#xff0c;每个数是它…