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

产品开发流程8个步骤案例南阳seo网站推广费用

产品开发流程8个步骤案例,南阳seo网站推广费用,网站开发架构,赣州新闻目录 题目链接:75. 颜色分类 - 力扣(LeetCode) 题目描述 示例 提示: 解法一:不要脸用sort Java写法: 运行时间 解法二:O1指针 Java写法: 重点 运行时间 C写法:…

目录

题目链接:75. 颜色分类 - 力扣(LeetCode)

题目描述

示例

提示:

解法一:不要脸用sort

Java写法:

运行时间

解法二:O1指针

Java写法:

重点

运行时间

C++写法:

运行时间

时间复杂度和空间复杂度

总结


题目链接:75. 颜色分类 - 力扣(LeetCode)

注:下述题目描述和示例均来自力扣

题目描述

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

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

        必须在不使用库内置的 sort 函数的情况下解决这个问题。

示例

示例 1:

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

示例 2:

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

提示:

  • n == nums.length
  • 1 <= n <= 300
  • nums[i] 为 01 或 2

进阶:

  • 你能想出一个仅使用常数空间的一趟扫描算法吗?


解法一:不要脸用sort

        既然题目都说了不让用sort,那么我这种一生逆骨的选手是必须要用一下的嘿嘿。

Java写法:

class Solution {public void sortColors(int[] nums) {Arrays.sort(nums);}
}

运行时间

真爽啊哈哈哈哈哈哈哈哈哈


解法二:O1指针

Java写法:

class Solution {public void sortColors(int[] nums) {// p0用于交换0int p0 = 0;// p1用于交换1int p1 = 0;// 进入交换逻辑for (int i = 0; i < nums.length; i++) {if (nums[i] == 1) {// 遇到1int temp = nums[i];nums[i] = nums[p1];nums[p1] = temp;p1++;} else if (nums[i] == 0) {// 遇到0int temp = nums[i];nums[i] = nums[p0];nums[p0] = temp;// 确保在遇到 0 时,p0 和 p1 之间的元素都是 1if (p0 < p1) {temp = nums[i];nums[i] = nums[p1];nums[p1] = temp;}p0++;p1++;}}}
}

重点

  • 变量定义

    • p0:用于指向 0 的位置。
    • p1:用于指向 1 的位置。
  • 循环遍历数组

    • 当遍历到元素 1 时,代码会将其与 p1 位置的元素交换,然后 p1 向右移动一位。
    • 当遍历到元素 0 时,代码会将其与 p0 位置的元素交换,然后 p0 向右移动一位,p1 也向右移动。
  • if (p0 < p1) 逻辑

    • 这一条件判断是为了确保在遇到 0 时,p0p1 之间的元素都是 1
    • 这样做的目的是在 0 被移动到前面时,同时也要把 1 移动到 p1 的位置,确保 1 被正确放在 0 的右边。
  • 避免重复处理

    • 只有在 p0 小于 p1 时,才进行这次交换,因为这表示 p0p1 之间有 1,需要将当前的 01 进行交换,以保持排序。

运行时间

C++写法:

class Solution {
public:void sortColors(vector<int>& nums) {// p0 用于交换 0int p0 = 0;// p1 用于交换 1int p1 = 0;// 进入交换逻辑for (int i = 0; i < nums.size(); i++) {if (nums[i] == 1) {// 遇到 1swap(nums[i], nums[p1]);p1++;} else if (nums[i] == 0) {// 遇到 0swap(nums[i], nums[p0]);// 确保在遇到 0 时,p0 和 p1 之间的元素都是 1if (p0 < p1) {swap(nums[i], nums[p1]);}p0++;p1++;}}}
};

运行时间

时间复杂度和空间复杂度


总结

        Ez就完事啦~~~~~

http://www.yayakq.cn/news/446305/

相关文章:

  • centos wordpress建站设计工作室怎么找客户
  • 要找做冲压件的厂去哪个网站找企业网站优化问题
  • 网站主编 做啥室内装潢设计师
  • 北京网站设计联系方式网络营销战略的内涵
  • 电商网站改版方案宁波免费网站建站模板
  • 维度 网站建设专业做网站制作自助建站系统
  • 做网站快速赚钱游戏网站开发公司
  • 南京做征信服务的公司网站微信小程序游戏充值破解
  • 免费好用的网站制作租用大型服务器多少钱
  • 手机网站发布页电脑版桂林象鼻山景区简介
  • 中山市做网站的公司做网站通栏模糊
  • 网站的建设费计入无形资产吗单页导航网站
  • 企业网站建设 阿里云网站主色调有几种
  • 在哪能学到网站建设在线A视频做爰网站
  • 建设网站是不是必须要服务器wordpress 文章审核
  • 深圳网站搜索常州网站建设选思创
  • php 网站模板 x11做律师网站电销
  • 浙江工信部网站备案查询需要建设网站的
  • 微信辅助网站制作桂林漓江
  • 网站首页一般做多大尺寸购物网站的建设
  • 郑州网站建站网站怎么样广州思盾互动网站建设公司
  • 微小店网站建设比较好注册公司材料怎么准备
  • 网站开发过程及要求关键词排名关键词优化
  • 什么是网站的备案号代理地址怎么设置
  • 北京网站建设116net布吉医院网站建设
  • 如何做360搜索网站城乡建设部网站首页
  • 医疗教育的网站建设诗词门户网站
  • 大型网站建设公司沈阳个人html网站
  • 中石化第四建设公司 网站wordpress 抽奖
  • ie9网站后台编辑器wordpress必要插件