lhl
首页
python
leetcode
产品思想
软件测试
博客 (opens new window)
github (opens new window)
首页
python
leetcode
产品思想
软件测试
博客 (opens new window)
github (opens new window)
  • python

  • leetcode

    • 数组

      • 双指针

        • 15. 三数之和
        • 19. 删除链表的倒数第 N 个结点
      • 1.两数相加
      • 11. 盛最多水的容器
      • 26.删除有序数组中的重复项
      • 75. 颜色分类
      • 136.只出现一次的数字
      • 283.移动零
      • 448. 找到所有数组中消失的数字
      • 617. 合并二叉树
    • 位运算

    • 动态规划

    • 链表

    • 栈

    • 树

  • 软件测试

  • Git

  • linux

  • 产品

  • MySql

  • docker

  • leetcode
  • array
2023-04-29

颜色分类

https://leetcode.cn/problems/sort-colors/submissions/ (opens new window) 标签 需要注意的点

  1. 两种指针方式,一种是取0和1,另一种是取0,2
  2. nums[i] 需要进行交换
  3. 注释写一些test case
  4. 解法1,参考https://www.bilibili.com/video/BV1Jg411M7Lp?spm_id_from=333.337.search-card.all.click&vd_source=e8e1b6de93e68d8ce8ab44afe5802a40 (opens new window)
class Solution:
    def sortColors(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        '''
        2,0,2,1,1,0
        ,0,1,1,2,2,0

        '''
        p0,p2 = 0, len(nums)-1
        i = 0

        while i <= p2:
            if nums[i] == 0:
                self.swap(nums, i, p0)
                i+=1
                p0+=1
            elif nums[i] == 1:
                i+=1
            else:
                self.swap(nums,i, p2)
                p2 -=1




    def swap(self, nums, index1, index2):
        nums[index1],nums[index2] = nums[index2],nums[index1]
class Solution:
    def sortColors(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        '''
            1,0,1,2,0
            0,0,0,1,2,0
        '''
        size = len(nums)
        p0, p1 = 0, 0

        for i in range(size):

            if nums[i] == 1:
                nums[i], nums[p1] = nums[p1], nums[i]
                p1 += 1
            if nums[i] == 0:
                nums[i], nums[p0] = nums[p0], nums[i]
                if p0 < p1:
                    nums[i], nums[p1] = nums[p1], nums[i]
                p0 += 1
                p1 += 1
26.删除有序数组中的重复项
136.只出现一次的数字

← 26.删除有序数组中的重复项 136.只出现一次的数字→

最近更新
01
lhl learn notes
02
filter
06-09
03
decorator
06-09
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式