力扣hot100 颜色分类 双指针 滚动赋值

这篇具有很好参考价值的文章主要介绍了力扣hot100 颜色分类 双指针 滚动赋值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Problem: 75. 颜色分类
力扣hot100 颜色分类 双指针 滚动赋值,力扣 hot100,leetcode,算法,职场和发展

思路

力扣hot100 颜色分类 双指针 滚动赋值,力扣 hot100,leetcode,算法,职场和发展

解题方法

描述你的解题方法

复杂度

时间复杂度: O ( n ) O(n) O(n)

空间复杂度: O ( 1 ) O(1) O(1)

Code

class Solution {
public void sortColors(int[] nums)
	{
		int n = nums.length;
		int p0 = 0;// 当前已知的最后一个0在数组中的下标(0元素的个数)
		int p2 = n - 1;
		for (int i = 0; i <= p2; i++)
		{
			while (i <= p2 && nums[i] == 2)
			{
//				nums[i] 与 nums[p2] 交换,即把 2 放到后面
				int t = nums[i];
				nums[i] = nums[p2];
				nums[p2] = t;
				p2--;
			}
			if (nums[i] == 0)
			{
//				nums[i] 与 nums[p0] 交换,即把 0 放到后面
				int t = nums[i];
				nums[i] = nums[p0];
				nums[p0] = t;
				p0++;
			}
		}
	}
}

💖 超简洁版

👨‍🏫 参考题解文章来源地址https://www.toymoban.com/news/detail-802671.html

class Solution {
    public void sortColors(int[] nums) {
        int n0 = 0, n1 = 0;
        for(int i = 0; i < nums.length; i++){
            int num = nums[i];
            nums[i] = 2;
            if(num < 2){
                nums[n1++] = 1;
            }
            if(num < 1){
                nums[n0++] = 0;
            }
        }
    }
}

到了这里,关于力扣hot100 颜色分类 双指针 滚动赋值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • leetcode-hot100双指针专题

    题目链接 283. 移动零 - 力扣(LeetCode) 解题思路 我们创建两个指针i,j,第一次遍历的时候指针j用来记录当前面有多少非0元素。即遍历的时候每遇到一个非0元素就将其往数组左边挪,第一次遍历完后,j指针的下标就指向了最后一个非0元素下边。 第二次遍历,起始位置就从

    2024年01月23日
    浏览(41)
  • 力扣hot100 找到字符串中所有字母异位词 滑动窗口 双指针 一题双解

    Problem: 438. 找到字符串中所有字母异位词 👩‍🏫 参考题解 ⏰ 时间复杂度: O ( n ) O(n) O ( n ) 🌎 空间复杂度: O ( 1 ) O(1) O ( 1 ) ⏰ 时间复杂度: O ( n ) O(n) O ( n ) 🌎 空间复杂度: O ( 1 ) O(1) O ( 1 )

    2024年01月24日
    浏览(49)
  • LeetCode 热题 100 JavaScript--75. 颜色分类

    给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sort 函数的情况下解决这个问题。 示例 1: 输入:

    2024年02月12日
    浏览(33)
  • 力扣hot100刷题记录

    二刷hot100,坚持每天打卡3道题!!! Today:2023-09-24

    2024年02月13日
    浏览(42)
  • 力扣HOT100 - 160. 相交链表

    解题思路:

    2024年04月12日
    浏览(48)
  • 力扣hot100 最长有效括号 动态规划

    Problem: 32. 最长有效括号 👨‍🏫 参考题解 ⏰ 时间复杂度: O ( n ) O(n) O ( n ) 🌎 空间复杂度: O ( n ) O(n) O ( n )

    2024年01月20日
    浏览(76)
  • 力扣hot100 单词拆分 变形背包 排列

    Problem: 139. 单词拆分 👨‍🏫 参考题解 时间复杂度: O ( n 3 ) O(n^3) O ( n 3 )

    2024年01月20日
    浏览(43)
  • 力扣hot100 排序链表 归并排序 递归

    Problem: 148. 排序链表 👩‍🏫 参考 ⏰ 时间复杂度: O ( n ) O(n) O ( n ) 🌎 空间复杂度: O ( n ) O(n) O ( n )

    2024年01月25日
    浏览(42)
  • 力扣hot100 杨辉三角 递归 DP

    Problem: 118. 杨辉三角 👨‍🏫 参考地址 时间复杂度: 添加时间复杂度, 示例: O ( n ) O(n) O ( n ) 空间复杂度: 添加空间复杂度, 示例: O ( n ) O(n) O ( n )

    2024年01月17日
    浏览(38)
  • [力扣 Hot100]Day4 移动零

    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 出处 类似于冒泡,把零向右移。

    2024年01月21日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包