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

网站程序基础郑州seo关键词

网站程序基础,郑州seo关键词,绍兴企业网站建站模板,php源码怎么搭建网站给定一个包含红色、白色和蓝色、共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.dtcms.com/wzjs/248636.html

相关文章:

  • 网站建设兆金手指下拉下载百度app
  • WordPress头像sslseo软文推广
  • 可以做司法考试题的网站新乡搜索引擎优化
  • 九江网站建设优化公司微信小程序开发文档
  • 常见的网站类型有自有品牌如何推广
  • 网站开发岗位思维导图全网营销思路
  • 自己录入数据做问卷的网站电商运营去哪里学比较好
  • 网站源码采集搜索引擎优化排名seo
  • 网站首页设置伪静态市场推广seo职位描述
  • 一站式建设网站山西免费网站关键词优化排名
  • 北京seo排名技术软件优化
  • 做网站公司的介绍百度贴吧怎么发广告
  • 精美wordpress主题seo外包公司专家
  • 广州平台网站搭建网站seo具体怎么做?
  • 广元商城网站开发google网址直接打开
  • 静态网站建设的技术运用seo有什么作用
  • 自己做网站需要填税表吗网址收录入口
  • 关于工装设计的网站百度秒收录技术最新
  • 网站的后台一般用什么做的大众网疫情最新消息
  • 开化网站建设免费推广链接
  • 影视网站怎么做原创重庆seo管理平台
  • wordpress 外贸网站建设软文发稿平台
  • 贵阳网站建设哪家好简单的html网页制作
  • 自己弄网站怎么弄温州seo排名公司
  • 济宁市任城区建设局网站广东网站seo营销
  • 垦利网站制作搜索引擎营销的特点是什么
  • 想做网站多少钱网易搜索引擎入口
  • 苏州有实力的软件开发公司网络营销的seo是做什么的
  • wordpress仿互站百度指数是什么
  • 上海静安做网站多少钱免费做网站怎么做网站