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

wordpress 珠宝西安seo网络优化公司

wordpress 珠宝,西安seo网络优化公司,景观设计论文,东莞圆心科技网站开发给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sort 函数的情况下解…

给定一个包含红色、白色和蓝色、共 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

进阶:

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

写就写进阶的解,这还不简单,直接上代码,看不懂可以私信或评论,第一时间解答

class Solution {/**这个题目也是听起来比较唬人,但是这个仔细想想如果按照数字来看,不就是红色最小,白色居中,蓝色最大吗这是啥问题?荷兰国旗啊,下面我们用荷兰国旗问题解一下,这就是荷兰国旗里的Partition */public void sortColors(int[] nums) {/**如果就一个那就直接返回吧,没啥可操作的*/if(nums.length == 1) {return;}/**开始进行划分,redLast表示确定的红的最后一个位置,目前还没有,blueFirst表示确定的蓝色的第一个位置,目前也还没有*/int redLast = -1;int blueFirst = nums.length;int cur = 0;while(cur < blueFirst) {/**等于的不管 */if(nums[cur] == 1) {cur ++;/**如果是0和红色的最后一个位置的下一个交换,扩充红色区,因为换的是之前的位置,所以这里cur不用验证,也直接++ */} else if(nums[cur] == 0) {swap(nums, cur++, ++redLast);} else {/**如果是2,就和蓝色的最后一个位置的前一个交换,扩充红色区,但是这个是从后面缓过来的,需要看看*/swap(nums, cur, --blueFirst);}}}public void swap(int[] nums, int i, int j) {int temp = nums[i];nums[i] = nums[j];nums[j] = temp;}
}

http://www.fp688.cn/news/156139.html

相关文章:

  • 汕头建站培训上海快速优化排名
  • 莆田做网站谷歌浏览器官网手机版
  • 运城做网站深圳网站建设 手机网站建设
  • 珠海网站建设有限公司郑州网络推广哪家口碑好
  • 怎么地wordpress推广seo网站
  • wordpress更改网站url无法访问独立站seo
  • 怎样在国外网站做推广百度知道网页版入口
  • 咸宁商城网站建设seo教程培训
  • 如何做亚马逊备案的网站外包公司的优势和劣势
  • 云南网站建提升seo排名
  • 定制网站建设公司搜索引擎营销与seo优化
  • 周口做网站推广宁波靠谱营销型网站建设
  • 做网站怎样使图片自由移动福清seo
  • 旅游网站建设方案简介贵阳网站优化公司
  • 干净简约高端的网站网站服务公司
  • 网站建设手机源码河南网站开发公司
  • 6生肖竞猜网站建设网络营销主要做些什么工作
  • 专门做网站搜索优化的公司seo推广优化工具
  • 网站开发费用算无形资产么贵阳网站建设公司
  • 政府部门网站建设意义友情链接英文
  • 孝感新闻门户网站网站建设制作公司
  • 衣服网站建设方案书seo如何优化网站
  • 网站开发公司流程seo快速排名软件价格
  • 网站建设的基本概念设计网站官网
  • 优秀的html5网站有没有免费推广平台
  • 做艺人资料卡的网站怎样加入网络营销公司
  • 东营小程序开发制作网站是否含有seo收录功能
  • 网站中的链接是一个一个html做的企业网页设计报价
  • 网站建设项目进展情况营销软文范例大全300字
  • 做网站时间购买域名