75. 颜色分类

复制代码
75. 颜色分类
#初步想法,不要求用sort,那么分别记录012的个数在构造数组
class Solution:
    def sortColors(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        count_0=count_1=count_2=0
        for i in nums:
            if i==0:
                count_0+=1
            elif i==1:
                count_1+=1
            else:
                count_2+=1
        nums_=[]
        for i in range(count_0):
            nums_.append(0)
        for i in range(count_1):
            nums_.append(1)
        for i in range(count_2):
            nums_.append(2)
        print(nums_)
        return nums_
#虽然结果是对的,但要求更改原数组,所以这相当偷巧
---
#单指针,先把0调到最前方,再调节1的位置,交换使用r1记录0结束1开始的位置
class Solution:
    def sortColors(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        r1, i, n = 0, 0, len(nums) 
        # 第一步:通过交换 使得nums[0,...,r1-1]都是0
        while i<n:
            if nums[i]==0:
                nums[r1], nums[i]=nums[i], nums[r1]
                r1+=1
            i+=1
        # 第二步:通过交换 使得nums[r1,...,r2-1]都是1
        r2, i = r1, r1
        while i<n:
            if nums[i]==1:
                nums[r2], nums[i]=nums[i], nums[r2]
                r2+=1
            i+=1
        return nums
---
复制代码

 

logo
posted @   是冰美式诶  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示