当前位置: 首页 > news >正文

网站制作 语言选择怎么做h5网站模板免费下载

网站制作 语言选择怎么做,h5网站模板免费下载,国家企业信用信息公示系统江苏,动漫设计与制作代码75. 颜色分类 📌 题目描述 给定一个包含红色、白色和蓝色的数组 nums(分别用整数 0、1 和 2 表示),请你原地对它们进行排序,使得相同颜色的元素相邻,顺序为: 红色 (0) → 白色 (1) → 蓝色 (…

75. 颜色分类

📌 题目描述

给定一个包含红色、白色和蓝色的数组 nums(分别用整数 0、1 和 2 表示),请你原地对它们进行排序,使得相同颜色的元素相邻,顺序为:

红色 (0) → 白色 (1) → 蓝色 (2)

要求:不能使用库函数 sort,且需要原地操作,空间复杂度为 O(1)。 

✨ 示例

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

💡 解法:三指针 + 一趟扫描(荷兰国旗算法) 

class Solution:def sortColors(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""# 三指针:left指向0的右边界,right指向2的左边界,curr遍历当前元素left, curr, right = 0, 0, len(nums) - 1while curr <= right:if nums[curr] == 0:nums[left], nums[curr] = nums[curr], nums[left]left += 1curr += 1elif nums[curr] == 2:nums[right], nums[curr] = nums[curr], nums[right]right -= 1# 注意:这里不能curr += 1,因为交换过来的元素需要继续判断else:curr += 1

📍 解题思路详解

这是经典的荷兰国旗问题,核心思想是使用三个指针划分区域:

  • left:左边界,所有 0 应该放在这里

  • right:右边界,所有 2 应该放在这里

  • curr:当前正在遍历的元素

🧠 三种情况:

nums[curr]操作指针更新
0left 交换left += 1, curr += 1
1保持不动curr += 1
2right 交换right -= 1(curr 不变)

⏱️ 时间与空间复杂度

  • 时间复杂度O(n),每个元素最多只被遍历一次

  • 空间复杂度O(1),原地排序,无额外空间

🔚 总结

本题考察对原地排序、双指针/三指针技巧的掌握,是一道非常经典的数组类面试题。务必熟练掌握!

 

http://www.dtcms.com/a/470832.html

相关文章:

  • 【Linux】数据链路层 and 其他知识
  • 个人网站怎么做口碑怎么创建小程序卖东西
  • linux下conda未安装的解决方法(离线安装linux下的conda)
  • 不错的免费网站建设动漫画设计与制作是学什么
  • 《3D动作游戏受击反馈:从模板化硬直到沉浸式打击感的开发拆解》
  • QWidget 如何设置GPU渲染
  • 做动漫头像的网站it之家网站源码
  • 网站流量统计分析做外贸网站要注意什么
  • 建设本地端网站美食网页设计作品欣赏
  • 哪个网站看电影做便宜制作网站需要哪些技术
  • SPI接口数模转换DAC手册学习
  • OOALV 没有布局保存按钮解决
  • 网站建设陕西wordpress建站 百度网盘
  • GB28181: 应用层网关 ALG(Application Level Gateway)
  • Linux应用 线程
  • 网站建设公司业务提成多少wordpress 缩略图设置
  • RPC的原理及Go RPC
  • 青岛的网站建设怎做网站
  • 智能网站建设软件有哪些潍坊网络推广个人合作
  • Python下载实战:高效稳定技巧大全
  • 手机如何创建简易网站设计签名免费网站
  • 扎染毕业设计代做网站网站备案和域名备案区别
  • NX581NX600美光SSD固态闪存NX601NX602
  • 网络科技公司网站首页蚌埠做网站有哪些公司
  • 建设网站费用要进固定资产吗易语言做网站教程
  • UE5 测量 -4,长度测量:P10点击按钮清除距离测量,P11最终测量效果。
  • 返回链接 网站惩罚检查 错误检查百度一下官方下载安装
  • 房地产网站方案网络广告策划书案例
  • VS(QT)调用Matlab函数的方法
  • 企业网站搜索优化网络推广网站首页的logo这么修改