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

音乐网站设计总结百度关键词优化培训

音乐网站设计总结,百度关键词优化培训,阿里云建设网站教学,中山里水网站建设给定一个包含红色、白色和蓝色、共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.zhongyajixie.com/news/19277.html

相关文章:

  • 公司做网站的优点收录网站查询
  • 国内大型网站域名seo搜索优化排名
  • dedecms 网站名称标签高端建站
  • 国内优秀网站联赛积分榜排名
  • 网站版建设百度品牌广告多少钱
  • 公司网站二维码生成器培训网站制作
  • 外贸网站做开关行业的哪个好好推建站
  • html5导航网站源码下载网络科技公司经营范围
  • 网页设计网站大全网站内部链接优化方法
  • 无障碍网站建设的意义汕头seo优化项目
  • 2003 防火墙 限制网站国外独立站网站
  • 2023营业执照年检seo 推广怎么做
  • 内蒙古网站建设公司标题优化seo
  • 重庆网站建设jccit百度竞价排名收费
  • 站长之家ppt百度云登录
  • 什么样的公司需要做网站东莞今天最新消息新闻
  • 天津做网站认准津坤科技百度网站推广怎么收费
  • 有什么检索标准的网站品牌推广方案模板
  • 做网站一个月能挣多少百度手机卫士下载安装
  • 杭州集团网站建设方案郑州seo哪家专业
  • Wordpress搜索指定页面内容seo综合查询平台
  • 网站平台建设成本东莞seo软件
  • 视频解析网站怎么做的百姓网推广怎么收费标准
  • 7天查分网站 优帮云微信营销软件
  • 东莞网站建设信科企业邮箱登录入口
  • 网站项目功能需求清单软文营销的成功案例
  • bshare wordpressseo关键词优化服务
  • 如何打开网页源代码网站seo内容优化
  • 石家庄小学网站建设百度关键词排行榜
  • 佛山网站策划哪家专业中国进入全国紧急状态