C语言 | Leetcode C语言题解之第75题颜色分类

题目:

题解:

cpp 复制代码
void swap(int *a, int *b) {
    int t = *a;
    *a = *b, *b = t;
}

void sortColors(int *nums, int numsSize) {
    int p0 = 0, p2 = numsSize - 1;
    for (int i = 0; i <= p2; ++i) {
        while (i <= p2 && nums[i] == 2) {
            swap(&nums[i], &nums[p2]);
            --p2;
        }
        if (nums[i] == 0) {
            swap(&nums[i], &nums[p0]);
            ++p0;
        }
    }
}
相关推荐
旖-旎8 小时前
《LeetCode 416 分割等和子集》
c++·算法·leetcode·动态规划·背包问题
不会c+8 小时前
C语言:入门到精通(408考研版)系列七 派生的数据类型
c语言·开发语言
程序猿编码9 小时前
没有AI框架,没有GPU,一个C语言文件跑通大模型
c语言·开发语言·人工智能·深度学习·ai·大模型
CHANG_THE_WORLD9 小时前
Linux C 多线程 TCP 并发服务器:从 `accept()` 到资源管理深度剖析
linux·服务器·c语言
十月的皮皮10 小时前
C语言学习笔记20260716-编译与链接
c语言·笔记·学习
牧以南歌〆11 小时前
数据结构<一>顺序表
c语言·数据结构·算法
CHANG_THE_WORLD11 小时前
Linux C 多线程 TCP 并发服务器:从 `accept()` 到工作线程的完整解析
linux·服务器·c语言
敲上瘾11 小时前
Linux系统调用mmap文件映射与malloc简单模拟实现指南
linux·服务器·c语言·缓存
CHANG_THE_WORLD11 小时前
Linux C 多进程并发 TCP 服务器:从阻塞模型到 `fork()`、`SIGCHLD` 与 `EINTR`
linux·服务器·c语言
wdfk_prog20 小时前
嵌入式面试真题第 11 题:RTOS 优先级翻转与实时任务阻塞的通用治理
c语言·缓存·面试·职场和发展·架构