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;
        }
    }
}
相关推荐
坚持编程的菜鸟6 小时前
模拟实现memmove
c语言·算法·模拟实现memmove
坚持编程的菜鸟7 小时前
编写判断大小端程序
c语言·算法·判断大小端
不负岁月无痕8 小时前
简单理解操作系统结构
java·linux·c语言·开发语言·c++·面试
qq_448011169 小时前
C语言中的指针函数和函数指针
java·c语言·开发语言
clerly10 小时前
C语言如何实现继承?
c语言·多态·继承·封装·结构体
wengqidaifeng11 小时前
2026 年电赛(TI 杯)H 题:MaxiCamPro、双主控通信、VOFA+ 遥测与可复现实验方法
c语言·单片机·嵌入式硬件
evans在进步11 小时前
LeetCode 2 两数相加:链表模拟加法,Java 图解进位过程
java·leetcode·链表
Hi李耶11 小时前
【LeetCode】557.反转字符串中的单词 III
算法·leetcode·职场和发展
c2385612 小时前
C/C++每日一练20
c语言·开发语言·c++
坚持编程的菜鸟12 小时前
模拟实现strncpy
c语言·算法·模拟实现strncpy