力扣每日一题:75. 颜色分类 Python指针一遍通过!

简介: 力扣每日一题:75. 颜色分类 Python指针一遍通过!

75.颜色分类


难度:中等


题目:

给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。

此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。


示例:

示例 1:
输入:nums = [2,0,2,1,1,0]
输出:[0,0,1,1,2,2]
示例 2:
输入:nums = [2,0,1]
输出:[0,1,2]
示例 3:
输入:nums = [0]
输出:[0]


分析:

这是一道典型的指针问题,我们维护left指针用来定位0的位置,维护right指针用来定位2的位置。

然后添加一个递增的point指针开始遍历数组,当发现0时,和left指针内容互换。然后left指针+=1,point指针+=1

当发现2时,和right指针内容互换,right指针+=1,但此时注意,先不要添加point指针。

因为point是从左向右移动的,所以point走过的路,left是走在前人的脚步上,此时可以大胆+1.

但right指针的交换后内容,可能是0,此时需要再次判断后再增加point指针。


解题:

class Solution:
    def sortColors(self, nums):
        left = point = 0
        right = len(nums) - 1
        while point <= right:
            if nums[point] == 0:
                nums[point], nums[left] = nums[left], nums[point]
                left += 1
                point += 1
            elif nums[point] == 2:
                nums[point], nums[right] = nums[right], nums[point]
                right -= 1
            else:
                point += 1




相关文章
|
前端开发 计算机视觉 Python
浅蓝色代表什么颜色?——Python中的颜色表示与处理
本文介绍了浅蓝色在计算机图形和Web开发中的表示方法,包括RGB、十六进制和HSL三种常见格式,并详细说明了如何使用Python的Pillow和colorsys库来处理和转换这种颜色,最后给出了生成浅蓝色背景的CSS代码示例。
985 6
|
Python
Python办公自动化:xlwings对Excel进行分类汇总
Python办公自动化:xlwings对Excel进行分类汇总
280 1
|
12月前
|
算法 容器
【算法】——双指针算法合集(力扣)
移动零,复写零,快乐数,盛最多水的容器,有效三角形的个数,和为s的两个数(查找总价格为目标值的两个商品 ),三数之和,四数之和
|
机器学习/深度学习 TensorFlow 算法框架/工具
利用Python和TensorFlow构建简单神经网络进行图像分类
利用Python和TensorFlow构建简单神经网络进行图像分类
344 3
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
421 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
安全 Python
Python脚本实现IP按段分类
【10月更文挑战第04天】
165 7
|
Python
在python终端中打印颜色的3中方式(python3经典编程案例)
这篇文章介绍了在Python终端中打印彩色文本的三种方式:使用`colorama`模块、`termcolor`模块和ANSI转义码。
431 8
|
存储 Python 容器
Python 对象有哪几种,我们可以从哪些角度进行分类呢?
Python 对象有哪几种,我们可以从哪些角度进行分类呢?
137 1
|
Python
408.有效单词缩写 Python指针思路分析与细节解析!
408.有效单词缩写 Python指针思路分析与细节解析!
229 0

推荐镜像

更多