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

个人主页界面网站搬家

个人主页界面网站,搬家,系统管理的主要内容,企业管理咨询机构题目已经提示可以一遍扫描了但是我还是没有想到#xff0c;其实双指针的想法我已经有了#xff0c;但是一想到有问题就觉得无法实现。这也揭示了我思维上的问题#xff1a;用一种方法解决问题遇到困难第一件事情不是想着如何攻克而是想着换一种方法。对自己的思维也不自信。…题目已经提示可以一遍扫描了但是我还是没有想到其实双指针的想法我已经有了但是一想到有问题就觉得无法实现。这也揭示了我思维上的问题用一种方法解决问题遇到困难第一件事情不是想着如何攻克而是想着换一种方法。对自己的思维也不自信。 我自己简单了写了一个两遍扫描的程序 class Solution { public:vectorint cnt;void sortColors(vectorint nums) {cnt.resize(3,0);int n nums.size();for(int i0;in;i){cnt[nums[i]];}int idx 0;for(int i0;i3;i){for(int j0;jcnt[i];j){nums[idx] i;}}} };仔细研究了一下题解题解给出了三种方法。第一种方法使用单指针需要遍历两次并没有什么借鉴意义。后面两种使用双指针的方法比较值得学习。 方法一 使用双指针p0p_0p0​用来保存0和1的分界p1p_1p1​用来1和2的分界刚开始的时候p0p_0p0​和p1p_1p1​都是0然后对整个数组进行扫描 如果是1先将当前元素和p1p_1p1​指向的元素调换然后p1p_1p1​如果是0先将当前元素和p1p_1p1​指向的元素调换如果p1p_1p1​在p0p_0p0​的前面则说明需要将p1p_1p1​所指向0和p0p_0p0​指向的1进行交换。如果是2则不用处理 class Solution { public:void sortColors(vectorint nums) {int n nums.size();int p00, p10;for(int i0;in;i){if(nums[i] 1){swap(nums[p1], nums[i]);} else if(nums[i] 0){swap(nums[p1], nums[i]);if(p1 p0){nums[p0] 0;nums[p1] 1;}p1; p0;}}} };这种写法的核心在于让p1p_1p1​作为分界点如果是1的话进行特殊处理 方法二 使用p0p_0p0​保存0和1的分界点使用p2p_2p2​保存1和2的分界点然后初始的时候让p0p_0p0​为0p2p_2p2​为n-1遍历数组 如果为0则将当前遍历元素和p0p_0p0​所指向的元素进行交换并p0p_0p0​如果为2则将当前遍历元素和p2p_2p2​所指向的元素进行交换并−−p2--p_2−−p2​。但是我们不能就这样遍历下一个元素因为我们不能确定交换以后当前指向元素是1所以我们要继续对当前元素进行处理如果为1不进行处理 当遍历到p2p_2p2​的时候停止遍历 class Solution { public:void sortColors(vectorint nums) {int n nums.size();int p0 0, p2 n-1;int idx 0;while(idx p2){if(nums[idx] 0){swap(nums[p0], nums[idx]);p0; idx;} else if(nums[idx] 2){swap(nums[p2], nums[idx]);--p2;} else{idx;}}} };虽然这道题比较简单但是我觉得这道题的价值在于为快速排序的三路划分提供了一个比较好的方法对于快速排序的每一次划分我们可以把和枢纽相等的放在中间然后再分别处理小于枢纽的和大于枢纽的这样效率比较高。
http://www.yutouwan.com/news/386922/

相关文章:

  • 徐州企业网站推广河北沧州市网络公司
  • 如何做网站出单编程培训班在线培训
  • 网站开发公司名单秦皇岛海三建设董事长
  • 有哪些做高考模拟卷的网站广东专注网站建设企业
  • 易做文学网站的logowordpress4.6字体
  • 网站的设计方法有哪些德州最新通告今天
  • 网站页面自动还原代码沈阳紧急通知
  • 东营区建设局网站全国工商核名查询系统官网
  • 做模板网站的利与弊个人网站设计步骤
  • 网站建设一键搭建百度搜索结果优化
  • 网站的栏目有什么名字销售网站开发实践报告
  • 网站建设运营计划书wordpress模板小程序
  • 备案时网站服务内容如何建设网站济南兴田德润简介电话
  • 发稿软文公司天津网站seo服务
  • 制作公司网站价格中山 网站建设一条龙
  • 泰州模板建站哪家好济南 规划 网站
  • 哪个网站做废旧好医院网站HTML5
  • python编程网页版新网站如何做seo推广
  • 做简单的网站链接响应式布局设计
  • 建设自己的网站seo网站推广平台
  • 培训网站推荐教育行业网站开发
  • 在线考试网站开发报价个人网站推广渠道 微博 贴吧
  • 做网站送的企业邮箱能用吗尚层装饰公司官网
  • 接网站开发外包烟台网站建设 制作 推广
  • 建站公司的工作流程视频直播第三方sdk
  • 自己做网站卖矿山设备深圳网页制作推广排名
  • 花都网站建设策划WordPress 多个分类目录
  • 济南手机建站哪家好医疗网站建设机构
  • 北京网络优化提升seo搜索排名
  • 洛阳网站的优化网站开发设计比赛