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

用wampserver搭建网站北京搜索优化排名公司

用wampserver搭建网站,北京搜索优化排名公司,新网站如何做免费推广,网站排名易下拉刷词给定一个包含红色、白色和蓝色、共n个元素的数组nums,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排序。 使用整数0、1和2分布表示红色、白色和蓝色。 必须在不使用库内置sort函数的情况下解决这个问题。 示例1&a…

给定一个包含红色、白色和蓝色、共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
  • 进阶:你能想出一个仅使用常数空间的一趟扫描算法吗?

本题是经典的【荷兰国旗问题】,由计算机科学家 Edsger W. Dijkstra 首先提出。

解题思路:

方法一:单指针

两次遍历:在第一次遍历中,将数组中所有的0交换到数组头部。

                  第二次遍历中,将数组中所有的1交换到头部的0之后。

void swap(int *a,int *b)
{int t = *a;*a = *b,*b = t;
}void sortColors(int *nums,int numsSize)
{int ptr = 0;for(int i=0;i<numsSize;++i){if(nums[i]==0){swap(&nums[i],&nums[ptr]);++ptr;}}for(int i=ptr;i<numsSize;i++){if(nums[i]==1){swap(&nums[i],&nums[ptr]);++ptr;}}
}

 时间复杂度:O(n),其中n是数组nums的长度。

 空间复杂度:O(1)

方法二:双指针

使用两个指针分别来交换0和1

void swap(int *a,int *b)
{int t= *a;*a= *b,*b=t;
}void sortColors(int *nums,int numsSize)
{int p0 = 0,p1=0;for(int i=0;i<numsSize;i++){if(nums[i]==1){swap(&nums[i],&nums[p1]);p1++;}else if(nums[i]==0){swap(&nums[i],&nums[p0]);if(p0<p1)  swap(&nums[i],&nums[p1]);++p0,++p1;}}
}

时间复杂度:O(n),其中n是数组nums的长度

空间复杂度:O(1)

方法三:双指针

左指针P0来交换0

右指针P2来交换2

void swap(int *a,int *b)
{int t=*a;*a=*b,*b=t;
}void sortColors(int *nums,int numsSize)
{int p0=0,p2=numsSize-1;for(int i=0;i<p2;i++){while(i<=p2 && nums[i]==2){swap(&nums[i],&nums[p2]);--p2;}if(nums[i]==0){swap(&nums[i],&nums[p0]);++p0;}}
}

时间复杂度:O(n),其中n是数组nums的长度

空间复杂度:O(1)

方法四:记录0 1 2的个数,对其进行赋值即可。

http://www.hrbkazy.com/news/51064.html

相关文章:

  • 财务公司网站源码创建app平台
  • 提供温州手机网站制作哪家好最新域名查询ip
  • 郑州app开发流程权威seo技术
  • 江苏专业的网站建设宁波网络营销公司
  • 网站外连平台推广公众平台营销
  • 贵州专业网站建设公司哪家好seo是搜索引擎营销吗
  • html简单的网站 今日头条
  • 建设个人网站用什么软件湖南正规关键词优化报价
  • 国外二级域名免费申请seo外链工具软件
  • wordpress搜索词结果按文章标题网站关键词优化工具
  • 贵阳论坛网站建设谷歌网站
  • 北京比较好的建网站公司刷外链
  • 大型网站开发语言排名推广普通话的意义50字
  • 安溪哪里有学做网站电商具体是做什么的
  • 自己做局域网站自己做一个网站
  • 苹果CMS如何做视频网站扬州网络推广公司
  • 湖南网站优化外包费用优化设计英语
  • php 微信 网站建设北京网站seo招聘
  • 刷赞网站推广qq免费五年级下册数学优化设计答案
  • ps做电商网站流程图设计公司网站模板
  • 计算机培训线上一对一网络优化工作内容
  • 一个新手如何做网站网站的网站建设
  • 做推广秒杀网站百度站长平台网站提交
  • 浙江网站建设推广seo交流网
  • nginx 一个独立ip 建立2个独立网站 2个域名青岛网站设计公司哪家好
  • 阿克苏地区住房和城乡建设局网站营销宣传策划方案
  • 无锡响应式网站网络推广外包业务销售
  • 广州网站优化关键词排名国际新闻今日头条
  • 河南平台网站建设哪里有网络营销知名企业
  • 网站虚拟空间作用网络推广外包怎么样