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

每日一题——LeetCode1089.复写0

方法一 splice:

通过数组的slice方法,碰到 0就在后面加一个0,最后截取原数组的长度,舍弃后面部分。

但这样做是违反了题目的要求,不要在超过该数组长度的位置写入元素。

var duplicateZeros = function(arr) {var len = arr.lengthfor(let i=0;i<len;i++){if(arr[i]===0){arr.splice(i,0,0)i++}}arr.splice(len)
};

消耗时间和内存情况:

方法二 ——方法一优化:

 不直接操作arr,将arr的字符串形式赋值给str,对str按照要求进行修改,然后将str按位赋值给arr

这种方法也是算取巧

var duplicateZeros = function(arr) {var str =  arr.join('').replaceAll('0','00')for(var i=0;i<arr.length;i++){arr[i]=str[i]}
};

消耗时间和内存情况:

方法三 两次遍历+双指针( 时间复杂度O(n) 空间复杂度O(1) )

用实例来说明:

arr =[0,1,7,6,0,2,0,7],arr里面虽然有3个0,但是前面两个0被复写完之后第三个0就被舍弃了,所以第一次遍历记录arr里有多少个0能被复写,并记录最后一个能被复写的0的位置

双指针left和right,right指向数组的末尾,left指向能被保留下来的最后一个元素,那么(left,right]之间的元素都是要被舍弃的。

如果left指向的是非0元素,那么就把left指向的元素移动到right处,left、right都往前移动一位

如果left指向的是0元素,则看这个0是不是能被复写的0,如果不是就按照非0元素处理,如果是则right以及right-1的位置都要被赋值为0

两次单层循环,没有使用其他数组或字符串,这应该才是最为理想的解法

var duplicateZeros = function(arr) {var right = arr.length-1,left=0,countfor(let i=0;i<arr.length;i++){if(arr[i]===0 && right-i>left){left++count=i} }left = right-leftwhile(left>=0){if(arr[left]===0 && left<=count){arr[right]=0right--arr[right]=0right--left--}else{arr[right]=arr[left]right--left--}}
};

消耗时间和内存情况:

http://www.lryc.cn/news/274778.html

相关文章:

  • IPv6和IPv4在技术层面的区别
  • 如何充值GPT会员账号?
  • 设计模式:单例模式
  • 启动 Mac 时显示闪烁的问号
  • 十种编程语言的对比分析
  • React16源码: React.Children源码实现
  • 深度学习|4.1 深L层神经网络 4.2 深层网络的正向传播
  • 印象笔记03 衍生软件使用
  • R语言【CoordinateCleaner】——cc_gbif(): 根据通过 method 参数定义的方法,删除或标记地理空间中异常值的记录。
  • 模式识别与机器学习-集成学习
  • vue简单实现滚动条
  • 计算机网络第一课
  • 初识大数据,一文掌握大数据必备知识文集(12)
  • 安全防御之授权和访问控制技术
  • Iceberg从入门到精通系列之二十:Iceberg支持的字段类型
  • Unity坦克大战开发全流程——结束场景——通关界面
  • K8S三种发布方式和声明式资源管理
  • 从千问Agent看AI Agent——我们很强,但还有很长的路要走
  • Word2Vector介绍
  • 书生·浦语大模型全链路开源体系----(1)
  • 第四篇 行为型设计模式 - 灵活定义对象间交互
  • 2023最新租号平台系统源码支持单独租用或合租使用
  • 数据库的连接
  • 第14课 利用openCV快速数豆豆
  • 在前端利用Broadcast Channel实现浏览器跨 Tab 窗口通信的方法
  • 【Apache Doris】自定义函数之 JAVA UDF 详解
  • BMS电池管理系统带充放电控制过流过压保护
  • 在Linux中以后台静默运行Java应用程序
  • k8s---Pod的生命周期
  • CSS animation动画和关键帧实现轮播图效果HTML