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

网站推广的方法有哪些小制作图片

网站推广的方法有哪些,小制作图片,义乌做网站的公司有哪些,网站木马文件删除leetcode 1089. 复写零 leetcode 1089. 复写零 | 简单难度1. 题目详情1. 原题链接2. 基础框架 2. 解题思路1. 题目分析2. 算法原理3. 时间复杂度 3. 代码实现4. 知识与收获 leetcode 1089. 复写零 | 简单难度 1. 题目详情 给你一个长度固定的整数数组 arr #xff0c;请你将… leetcode 1089. 复写零 leetcode 1089. 复写零 | 简单难度1. 题目详情1. 原题链接2. 基础框架 2. 解题思路1. 题目分析2. 算法原理3. 时间复杂度 3. 代码实现4. 知识与收获 leetcode 1089. 复写零 | 简单难度 1. 题目详情 给你一个长度固定的整数数组 arr 请你将该数组中出现的每个零都复写一遍并将其余的元素向右平移。 注意请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上述修改不要从函数返回任何东西。 示例 1 输入arr [1,0,2,3,0,4,5,0] 输出[1,0,0,2,3,0,0,4] 解释调用函数后输入的数组将被修改为[1,0,0,2,3,0,0,4] 示例 2 输入arr [1,2,3] 输出[1,2,3] 解释调用函数后输入的数组将被修改为[1,2,3] 提示 1 arr.length 104 0 arr[i] 9 1. 原题链接 leetcode 1089. 复写零 2. 基础框架 ● Cpp代码框架 class Solution { public:void duplicateZeros(vectorint arr) {} };2. 解题思路 1. 题目分析 ( 1 ) (1) (1) 本题要求 对数组arr的0元素复写到下一个位置且其余元素依次后移一位超过数组长度的元素会被丢弃。 ( 2 ) (2) (2) 要求空间复杂度 O ( 1 ) O(1) O(1)对数组原地进行操作。 2. 算法原理 ( 1 ) (1) (1) 一个好想的思路就是忽略题目对空间复杂度 O ( 1 ) O(1) O(1)的要求额外创建一个长度为假设数组arr长度为nn的数组nums遍历arr数组如果当前元素等于0就2次写入nusm否则当前元素1次写入nums;直到新数组nums被写满就停止此时nums中就保存着复写的结果。 ( 2 ) (2) (2) 好的现在让我们尝试不创建额外数组而是原地修改arr。 使用快慢双指针算法定义快指针dest指向复写后的位置慢指针cur指向复写前的位置 ( 3 ) (3) (3) 如果直接从前往后进行复写操作明显是行不通的因为arr[cur]0时dest走两步而cur一直走一步会出现cur未遍历到的元素被覆盖的情况 ( 4 ) (4) (4) 只能考虑从后往前写。那么如何确定dest和cur的初始位置呢 首先明确一点dest一定不慢于cur故初始的前后位置情况一定是dest与cur相等或dest在cur之后。 完全模拟正着复写0操作直到cur遍历完整个数组arr此时dest大概率是处于越界位置的。 只模拟到有效位置 ( 5 ) (5) (5) 处理特殊情况下的越界 ( 6 ) (6) (6) 倒着实际执行复写操作 从cur所指位置开始向前遍历 如果nums[cur]0则nums[dest]和nums[dest-1]位置均被设置为0之后dest-2 反之nums[cur]!0则nums[dest]位置被设置为nums[cur]的值之后dest-- 每次判断之后cur都向前移动即cur--。 3. 时间复杂度 O ( n ) O(n) O(n) 第一步模拟复写0时遍历了一遍数组第三步从cur位置往前复写时也遍历了一遍数组故时间复杂度是 O ( n ) O(n) O(n) 3. 代码实现 class Solution { public:void duplicateZeros(vectorint arr) {int dest -1, cur 0;int n arr.size();// 正着模拟复写确定最后复写位置while(dest n - 1){if(arr[cur] 0){dest2;}else{dest;}cur;}// 循环结束cur指向了最后复写位置的下一个位置需要回退1// dest指向了复写后新数组的最后一个位置cur--;// 越界控制与调整此种情况是cur指向0时destn-2// 此时dest模拟复写dest2后为destn之后循环结束。/* 特殊处理这种情况此时是复写0但只有前1个0有效后一个0越界了。为使下文正常复写调整复写位置真正复写时从最后复写位置的前一个位置开始让dest-2cur--并直接对最后复写位置特殊复写*/if(dest n){dest - 2;cur - 1;arr[n - 1] 0;}// 倒着复写while(cur 0){if(arr[cur] 0){arr[dest--] 0;arr[dest--] 0;}else arr[dest--] arr[cur];cur--;}} };4. 知识与收获 ( 1 ) (1) (1) 有时候正面无法突破问题时反面是一个很好的突破口。 T h e The The E n d End End
http://www.w-s-a.com/news/803813/

相关文章:

  • 南山商城网站建设哪家技术好株洲seo网站优化软件
  • 服务类网站建设18款禁用网站app直播
  • 电子商务网站建设需要物流网站开发公司
  • 网站的系统建设方式有哪些内容宁波网站建设公司
  • 网站开发 技术方案品牌建设总要求
  • 中卫网站建站设计seo专员的工作内容
  • h5商城网站是什么意思.net 网站开发框架
  • 西安网站改版的公司软件外包是什么意思
  • 网站建设了解眉山网站优化
  • 做网站用php还是node如何申请网站域名流程
  • 销售公司怎么做网站删除wordpress
  • 毕节网站怎么做seohtml代码特效银河系
  • 淄博品质网站建设网站引导页案例
  • 网站建设虚拟空间小豹子韬韬是哪个网站做的
  • 网络司网站如何建立公司网站建议和规则
  • 织梦网站模板后台密码找回企业vi设计公司性价比高
  • php 爬取网站所有链接传奇手游发布网站
  • 免费软文网站wordpress中文名注册
  • 企业网站建设研究目的意义怎样设计一个公司网站
  • 怎么架构网站便民信息发布平台
  • 网站 建设 现状网站推广合同需要缴纳印花税吗
  • 熊猫头表情包制作网站wordpress 缺省目录
  • 网站浏览图片怎么做的群晖wordpress升级5.0
  • 25个优秀个人网站设计模板网站建设定位分析论文
  • 在线网站备案站长seo综合查询工具
  • 网站根 html网站建设行业数据
  • 网站公司做的网站有最字设计说明室内设计
  • 在线网站代码生成我想做个百度网站怎么做
  • 网站的建设费用分为长治市建设厅官方网站
  • 做网站都有哪些费用建设免费手机网站