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

昆明品牌网站建设网站模板建站

昆明品牌网站建设,网站模板建站,龙口网站制作公司,使用java做后台网站题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: …

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

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

示例 1:

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

示例 2:

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

第一种解题方法+代码:

第一种方法时间复杂度为O(n)。

代码:

class Solution {public void moveZeroes(int[] nums) {/*解题思路:双指针遍历数组1.使用一个指针 i 遍历数组 nums。2.使用另一个指针 j 记录非零元素应该放置的位置。3.当遇到非零元素时,将其移动到 j 指向的位置,并将 j 向前移动。4.遍历完成后,从 j 开始到数组末尾的位置全部填充 0。*///记录非0元素存放的位置int j = 0;//遍历数组for(int i = 0;i<nums.length;i++){if(nums[i] != 0){nums[j] = nums[i];j++;}}//填充0while(j<nums.length){nums[j] = 0;j++;}}
}

第二种解题方法+代码:

代码:

class Solution {public void moveZeroes(int[] nums) {/*解题思路:类似冒泡排序遍历数组nums,查找到0元素和非0元素时,交换它们的位置,将0元素向后移,一直到0元素都在数组的末尾*///嵌套for循环遍历numsfor(int i = 0;i<nums.length;i++){for(int j = 0;j<nums.length -i -1 ;j++){//查找到0元素和非0元素时,交换它们的位置if(nums[j] == 0 && nums[j+1] != 0){//类似于交换2杯水,需要一个中间变量int temp = nums[j];nums[j] = nums[j+1];nums[j+1] = temp;   }}}}
}

 

第二种解题方法效率比较低,需要花费的时间久(嵌套for循环的时间复杂度为O(n^2))。

总结:个人认为双指针遍历循环更简单高效,时间空间复杂度更小,因此个人更加推荐第一种解题方法。第二种方法类似于冒泡排序,在这篇博客中提供一种解题思路。继续加油~

http://www.yidumall.com/news/20295.html

相关文章:

  • 官方网站下载抖音网站有哪些平台
  • 自己做网站用什么软件下载建网站需要哪些步骤
  • 网站发布之后上传文件路径变了alexa
  • 哪些网站论坛做推广好百度地图优化
  • 国外的做的比较优秀的网站有哪些网络服务器搭建
  • 沈阳做网站优化的公司哪家好seo网络培训班
  • 手机网站css写法百度上免费创建网站
  • 自媒体网站建设要求西安做网页的公司
  • 互助盘网站开发在线培训管理系统
  • 电影网站vps服务器搜索引擎优化方式
  • 南乐政府门户网站建设上海百度竞价
  • 网站手机app开发品牌营销公司
  • 淘宝客必须做网站吗网上有免费的网站吗
  • 宿迁公司注册关键词优化推广
  • 房屋设计软件app哪个好seo是什么?
  • 怎么添加网站 多少钱seo在线培训机构
  • 怎么做谷歌这样的网站吗网推
  • 做网站为什么图片上传不了网络营销图片
  • 百度网页推广费用如何把一个关键词优化到首页
  • 男男做受网站产品线上营销推广方案
  • 重庆市城市建设档案馆官方网站推广app大全
  • psd下载网站模板今日新闻头条官网
  • 采集的网站怎么做收录最近三天的新闻大事国内
  • 如何做影视剧网站百度收录提交入口地址
  • 网站建设类型营销100个引流方案
  • wordpress插件采集好不好seo数据分析哪些方面
  • 安徽省建设厅网站备案广州网站优化方案
  • 网站建设对企业的重要性接推广一般多少钱
  • 简单做网站需要学什么西安快速排名优化
  • wordpress被劫持苏州优化收费