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

江苏网站建设哪家专业做网站没流量

江苏网站建设哪家专业,做网站没流量,微网站和手机网站的区别,网页模板免费下载完整版LeetCode 热题 100 | 283. 移动零 大家好,今天我们来解决一道经典的算法题——移动零。这道题在LeetCode上被标记为简单难度,要求我们将数组中的所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。下面我将详细讲解解题思路,…

LeetCode 热题 100 | 283. 移动零

大家好,今天我们来解决一道经典的算法题——移动零。这道题在LeetCode上被标记为简单难度,要求我们将数组中的所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。下面我将详细讲解解题思路,并附上Python代码实现。


问题描述

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。要求原地操作,不能复制数组。

示例:

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

解题思路

核心思想
  1. 双指针法

    • 使用两个指针 leftright,其中 left 指向当前已经处理好的非零元素的末尾,right 用于遍历数组。
    • nums[right] 不为 0 时,将其与 nums[left] 交换,并将 left 右移。
  2. 原地操作

    • 通过交换元素的方式,避免使用额外的空间。

Python代码实现

def moveZeroes(nums):left = 0  # 指向当前已经处理好的非零元素的末尾for right in range(len(nums)):# 如果当前元素不为0,则将其移动到left位置if nums[right] != 0:nums[left], nums[right] = nums[right], nums[left]left += 1# 测试示例
nums1 = [0, 1, 0, 3, 12]
nums2 = [0]moveZeroes(nums1)
moveZeroes(nums2)print(nums1)  # 输出: [1, 3, 12, 0, 0]
print(nums2)  # 输出: [0]

代码解析

  1. 初始化指针

    • left 指针初始化为 0,表示当前已经处理好的非零元素的末尾。
  2. 遍历数组

    • 使用 right 指针遍历数组,当 nums[right] 不为 0 时,将其与 nums[left] 交换,并将 left 右移。
  3. 交换元素

    • 通过交换操作,将非零元素移动到数组的前面,同时保持相对顺序。
  4. 原地操作

    • 直接在原数组上进行操作,不需要额外的空间。

复杂度分析

  • 时间复杂度:O(n),其中 n 是数组的长度。我们只需要遍历数组一次。
  • 空间复杂度:O(1),只使用了常数个额外空间。

示例运行

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

进阶:减少操作次数

在基本解法中,我们每次遇到非零元素都会进行一次交换操作。如果数组中没有 0,这种交换是不必要的。可以通过判断 leftright 是否相等来减少交换次数。

优化代码
def moveZeroes_optimized(nums):left = 0  # 指向当前已经处理好的非零元素的末尾for right in range(len(nums)):# 如果当前元素不为0,则将其移动到left位置if nums[right] != 0:if left != right:  # 避免不必要的交换nums[left], nums[right] = nums[right], nums[left]left += 1# 测试示例
nums1 = [0, 1, 0, 3, 12]
nums2 = [0]moveZeroes_optimized(nums1)
moveZeroes_optimized(nums2)print(nums1)  # 输出: [1, 3, 12, 0, 0]
print(nums2)  # 输出: [0]

优化代码解析

  1. 减少交换次数

    • 只有当 leftright 不相等时,才进行交换操作。
    • 这样可以避免在数组中没有 0 时进行不必要的交换。
  2. 时间复杂度

    • 仍然是 O(n),但实际运行效率更高。

总结

通过使用双指针法,我们可以高效地将数组中的 0 移动到末尾,同时保持非零元素的相对顺序。优化后的代码进一步减少了不必要的交换操作,提高了运行效率。希望这篇题解对大家有所帮助,如果有任何问题,欢迎在评论区留言讨论!

关注我,获取更多算法题解和编程技巧!


文章转载自:

http://u815QnTH.znzxd.cn
http://7JzZckEZ.znzxd.cn
http://A9SDWBai.znzxd.cn
http://L0yqeCXK.znzxd.cn
http://XztGQYY6.znzxd.cn
http://EU2xs2e8.znzxd.cn
http://5R1kvllx.znzxd.cn
http://draGVq7f.znzxd.cn
http://IWHW7Ykd.znzxd.cn
http://lDaPeChP.znzxd.cn
http://3KGZNKHE.znzxd.cn
http://iLfLDtSG.znzxd.cn
http://iY6tKxEa.znzxd.cn
http://uKb47V3K.znzxd.cn
http://lHr5L14v.znzxd.cn
http://6z28IbRM.znzxd.cn
http://am5hk9A2.znzxd.cn
http://jDYTn7YK.znzxd.cn
http://wzR8z366.znzxd.cn
http://MvlJU8xc.znzxd.cn
http://IZFQ3kQp.znzxd.cn
http://ZFNOIYDx.znzxd.cn
http://HLTNSzal.znzxd.cn
http://PQodXnYt.znzxd.cn
http://EQfEmSIj.znzxd.cn
http://ldy6N30d.znzxd.cn
http://cxxOnIp6.znzxd.cn
http://8VdXXhAL.znzxd.cn
http://zatiXEPd.znzxd.cn
http://MqCQ2Y55.znzxd.cn
http://www.dtcms.com/wzjs/767402.html

相关文章:

  • 天津高端网站制作做网站注册页面模板
  • 外贸建站主机空间哪家好sns社交网站建设
  • 淄博手机网站建设报价10个不愁销路的小型加工厂
  • 网上商城网站建设公司手机做炫光图头像的网站
  • 网站广告源码成都企业展厅设计成都企业展厅设计公司
  • 苍南住房和城乡规划建设局网站crm公司
  • 怎样做模具钢网站百合居装饰公司官网
  • h5技术建设网站的知识集团公司网站案例
  • 合肥网站建设之4个细节要注意网页制作是计算机什么专业
  • wordpress柚子皮5.31龙岩seo
  • 专业的单位网站建设个人网页官方网站
  • 论坛购物网站开发网站后台ftp替换图片怎么做
  • 模板建站配云服务器施工蓬莱网页设计
  • ip网站架设用wordpress开发网站模板
  • 淘宝店铺网站建设可行性报告做网站的标题图片
  • 网站建设教程免费传媒公司有哪些
  • 江都区城乡建设局网站无锡网站建设培训学校
  • 网站空间不支持php学做网站论坛好吗
  • 网站设计与网页制作在线中企动力官网登录
  • 淮安网站建设找谁好服务于中小企业建网站
  • 分享公众号的网站开办网站需要什么资质
  • 太原网站建设解决方案wordpress cad插件大全
  • 网站建设推广好做吗app仿制
  • 蓟州网站建设网络工程可以从事什么工作
  • 重庆网站排名提升海盐市网站建设
  • 怎么在网上创建网站电商网站建设的相关内容
  • 网站开发综合技能实训心得体会广州外贸营销型网站建设公司
  • 用网站还是阿里巴巴做soho网站建设饣金手指科杰十二
  • 网页入口网站推广wordpress用户注册插件
  • 为什么想做网站运营网站设计原型图怎么做