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

局域网内做网站友情链接交换

局域网内做网站,友情链接交换,做路牌的网站,seo平台代理1. 题目 2. 思路和题解 这道题是很经典的荷兰国旗问题,根据题目意思,要对这个数组按照颜色排序,而此时现在的红、白、蓝三个颜色分别对应0,1,2,因此可以想到使用冒泡排序对该数组进行排序。 代码如下&…

1. 题目

在这里插入图片描述

2. 思路和题解

这道题是很经典的荷兰国旗问题,根据题目意思,要对这个数组按照颜色排序,而此时现在的红、白、蓝三个颜色分别对应0,1,2,因此可以想到使用冒泡排序对该数组进行排序。
代码如下:

class Solution {public void sortColors(int[] nums) {for (int i = 0; i < nums.length; i++) {for (int j = nums.length - 1; j > i; j--) {if (nums[j - 1] > nums[j]) {int temp = nums[j];nums[j] = nums[j - 1];nums[j - 1] = temp;}}}}
}

虽然这种方法可以通过,但是时间复杂度很高,然后查看了官方给出的题解,官方是先统计数组中0,1,2的个数,然后根据他们的数量,重写整个数组。初始化两个指针分别指向0和nums.length - 1,然后如果遇到0,就交换到数组的头部,遇到2,就交换到数组的尾部,当遍历的数组超过了右指针,则遍历结束。这一需要注意的一点是,当找到2时,需要不断地将其进行交换,直到新的nums[i]不为2,才能停止交换。
代码如下:

class Solution {public void sortColors(int[] nums) {int left = 0, right = nums.length - 1;for (int i = 0; i <= right; ++i) {while (i <= right && nums[i] == 2) {int temp = nums[i];nums[i] = nums[right];nums[right] = temp;--right;}if (nums[i] == 0) {int temp = nums[i];nums[i] = nums[left];nums[left] = temp;++left;}}}
}

用这种方法,时间复杂度就低很多了,也能更适用于普遍的情况。

http://www.dtcms.com/wzjs/329740.html

相关文章:

  • cms网站管理开车搜索关键词
  • 江苏专业做网站的公司有哪些今日新闻简讯30条
  • 建设网站英文翻译娃哈哈软文推广
  • 网站开发端口查询seo分析与优化实训心得
  • 一个人做网站可以做什么绍兴seo网站优化
  • 云空间的网站如何做深圳十大教育培训机构排名
  • 网站访问统计报告模板沈阳专业seo排名优化公司
  • 广告公司可以做网站吗谷歌seo推广服务
  • 手机网站用什么软件做的好处百度网址大全首页链接
  • 建设部网站注册中心12345微信公众号
  • 深圳cms建站系统百度seo优化价格
  • 广东珠海新闻头条海外seo是什么
  • 东莞飞天网站设计公司南宁seo外包服务
  • dw可以做移动端网站营销型网站名词解释
  • 朔州市网站建设百度seo公司哪家好一点
  • 网站开发怎样验收bt兔子磁力天堂
  • 长安外贸网站建设文职培训机构前十名
  • 给娃娃做衣服卖的网站东莞网络排名优化
  • 网站设计公司无锡网络推广专员
  • 北京网站建设服务中心企业网站优化外包
  • 美国政府网站建设seo优化搜索结果
  • 中国网站建设20强宁波网络营销怎么做
  • 做网站费用多少钱seo搜索优化网站推广排名
  • b2c电子商务网站怎么做什么软件可以排名次
  • 四川住房建设厅网站首页企业推广托管
  • 系统开发生命周期法的优点表现百度快照优化排名推广怎么做
  • 石景山网站建设公司长沙网站制作
  • 韩国的 电子商务网站郑州百度推广公司电话
  • 发布个人免费网站的一般流程图营销软文范例大全300
  • 济南企业网站制作搜索引擎分析论文