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

十大设计创意网站成都建设局网站

十大设计创意网站,成都建设局网站,株洲做网站渠道电话,wordpress火车头采集软件发布接口这是小生,第一次写关于算法题目的博客,有什么写的不好的地方,希望各位佬可以在评论区写下需要修改的地方,我包听话的 目录 1.题目链接:283.移动零 2.题目描述: 3.解法(快排思想:数组划分区域)…

这是小生,第一次写关于算法题目的博客,有什么写的不好的地方,希望各位佬可以在评论区写下需要修改的地方,我包听话的

目录

1.题目链接:283.移动零

2.题目描述:

3.解法(快排思想:数组划分区域)

4.C++算法代码

5.算法总结


1.题目链接:283.移动零

2.题目描述:

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例 1:

输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

示例 2:

输入: nums = [0]
输出: [0]

3.解法(快排思想:数组划分区域)

算法思路:
在本题,我们用两个指针,一个cur,一个dest。cur指针来扫描整个数组,dest指针用来记录非零数序列的最后一个位置。在cur的扫描过程中,我们将数组分成三个区域:

算法流程:

  1. 初始化cur = 0,dest = -1(用来指向非零元素序列的最后一个位置。因为刚开始我们不知道最后一个非零元素在什么位置,因此初始化为-1)
  2. cur遍历的过程我们分为两种情况:
    a.当cur遇到的元素是0:直接让cur++。因为我们[dest+1,cur-1]的区域都是0                  b.当cur遇到非0的元素:直接让dest++(dest是非零元素的最后一个位置,所以dest++可以使得dest指向第一个0),然后用sort函数,使dest和cur位置的元素交换。再让cur++继续扫描数组。

4.C++算法代码

class Solution {
public:void moveZeroes(vector<int>& nums) {int cur = 0, dest = -1;while(cur<nums.size()){if(nums[cur] != 0){dest++;swap(nums[dest],nums[cur]);}cur++;}}
};

5.算法总结

这个方法是快排算法中,数据划分过程的重要一步。如果将快排算法拆解的话,这一段小代码就是实现快排算法的核心步骤

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

相关文章:

  • 新增备案网站司法厅网站建设方案
  • 加盟类网站建设做视频发哪个网站赚钱
  • 和田网站制作广州建设工程交易中心官网网址
  • 贵阳响应式网站开发服务网络是什么
  • 韩国企业网站模板下载网上开店加盟
  • 襄阳大摩网站建设上海松江建设发展有限公司网站
  • 谷哥做网站 是如何推广的免费做计算机题的网站
  • 传统网站和手机网站的区别做网站用的编程语言
  • 翻译软件翻译英语做网站恐怖小说网站怎么做
  • 网站设计登录界面怎么做花都手机网站建设
  • 网站数据库建表网站上的文章做参考文献
  • 免费涨1000粉丝网站.tech域名的网站
  • 旅游网站功能流程图杭州景观设计公司
  • 宁波网站建设 网络服务电商需要投入多少钱
  • 做网站用angular北京和君网站建设
  • 互联网网站开发创业计划书外贸做企业什么网站建设
  • 江西网站设计哪家好西安百度推广服务公司
  • 长春做网站优化哪家好个人如何加入百度推广
  • 如何识别网站建设情女照片做杯子网站
  • 青岛 生物类网站建设网站怎么做筛选
  • 怎么让人搜索到自己做的网站办公室装修注意事项
  • 建设一个游戏网站需要多少钱百度秒收录软件工具
  • 怎样上网站建设做网站推广公司
  • 为网站做外链的文章网站建设方案之目标
  • 网站建设服务费标准开发小程序需要多少钱难吗
  • 雅安公司做网站实现wordpress注册模板
  • 黄冈网站建设有哪些wordpress的目录结构
  • 网站建设专业如何做到廉洁自律wordpress 修改用户名
  • 打广告网站安徽专业网站制作公司
  • 网站建成后 再添加小功能麻烦吗做网站需要知道的简单代码