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

网站开发成本估计住房和城乡建设部信息中心官网

网站开发成本估计,住房和城乡建设部信息中心官网,wordpress文章自定义来源,app开发网站建设包含项目题目 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 数据范围 1 < nums.length < 104 -231 < nums[i] < 231 - 1 样例 示例…

题目

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

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

数据范围

1 <= nums.length <= 104
-231 <= nums[i] <= 231 - 1

样例

示例 1:

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

示例 2:

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

题解

博主题解(O(n)略慢于官方题解,但空间复杂度超过百分之99,且思路简单)

public static void moveZeroes(int[] nums) {//第一次遍历处理数据,得到非目标位0的数量int len=nums.length;//记录已遍历0数目int tz=0;for(int i=0;i<len;i++){if(nums[i]==0){tz++;continue;}nums[i-tz]=nums[i];}for(int i=0;i<len;i++){if(i==len-tz){nums[i]=0;tz--;}System.out.print(nums[i]+" ");}}

官方题解 (O(n)双指针,双指针)

class Solution {public void moveZeroes(int[] nums) {int n = nums.length, left = 0, right = 0;while (right < n) {if (nums[right] != 0) {swap(nums, left, right);left++;}right++;}}public void swap(int[] nums, int left, int right) {int temp = nums[left];nums[left] = nums[right];nums[right] = temp;}
}作者:力扣官方题解
链接:https://leetcode.cn/problems/move-zeroes/solutions/489622/yi-dong-ling-by-leetcode-solution/
来源:力扣(LeetCode

思路

这道题整体思路简单,但题目提到,不能新建数组,那么目的很明确了,就是要求你在O(1)的空间复杂度和O(n)的时间复杂度完成这道题。

博主采用的思路很简单,不管原始数组如何,最后得到的数组形式是一样的,前面一串非0数字,最后几个连续的0,那么就不需要考虑交换的逻辑,而是去把数字放到他最后应该存在的位置即可。这个很容易实现,使用tz存储目前遍历位置已经出现过0的数量,然后将非0数字往前移动就好。在遍历的过程中顺便记录0的个数,最后再把0填充到数组末端即可。

官方题解的思路需要熟悉双指针的思路,双指针有两种常见思路。第一种两个指针同时从一侧出发,类似快慢指针。第二种两个指针分别从两侧出发。这道题我们经过判断后,选择第一种,left用来存储非零数字目前应该存储的位置,right用来作为枚举的效果。通过交换 left 和 right 的元素,确保left 左侧全是非零元素(且顺序不变),left 和 right 之间是零(如果有)。

整体来说,对于没接触过或不熟悉双指针的人来说,官方题解虽然优雅,但还是具有一定的思维难度,大家多联系即可。

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

相关文章:

  • 门户网站建设网络推广小程序制作平台官网
  • 网站建设与运营在线考试wordpress平台搭建
  • 做神马网站优化雪梨直播
  • 做网站卖设备找哪家好网站建设公司兴田德润实惠
  • 建筑网站哪里找勉县网站建设
  • 网站建设这个行业如何wordpress文章显示摘要
  • 慢慢来 网站建设wordpress中的文章
  • 黑龙江专业建站最新网站建设哪家快
  • 网站建设三站合一微信小程序seo顾问服务咨询
  • 惠州网站建设一般多少钱宁波市城乡和建设网站
  • 个人可以备案几个网站杭州公司建设网站制作
  • 产品摄影网站推荐学新媒体运营要多少钱
  • 网站设计案例方案怎么买域名自己做网站
  • idc空间商网站源码哪个设计网站赚钱
  • 网站开发可以入无形资产吗青田县建设局网站
  • 统计网站的代码搭建起什么样的平台
  • 贴吧网站怎么做网络推广方案设计
  • 网站域名com和cn网络营销推广方案范文
  • 广州购网站建设html后缀的网站
  • 北京招聘网站设计师国外室内设计专业大学排名
  • 门户网站建设构架服务器维护
  • 佛山网站建设哪个好wordpress批量扫描弱口令工具
  • 营销型网站建设调查表在哪里找做网站的
  • 甘肃省建设局网站首页用vs2010做网站
  • dw做网站首页代码wordpress时区
  • 网站后台设置关键词在哪设北京网站建设好吗
  • 安卓开发简单网站开发代码下载app开发哪家好公司
  • 西安购物网站建设共青城网站建设公司
  • 网站链接优化怎么做辽宁专业网站建设
  • 微网站样式惠州网站建设 英语