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

免费网站制作app网站免费优化

免费网站制作app,网站免费优化,网站建设期末试题,微信不能分享wordpress面试经典 150 题 ---- 移除元素 移除元素方法一:双指针方法二:双指针优化 移除元素 方法一:双指针 题目要求在原数组的基础进行元素的删除,所以输出的数组长度一定小于原数组的长度,因此可以使用双指针,r…

面试经典 150 题 ---- 移除元素

  • 移除元素
    • 方法一:双指针
    • 方法二:双指针优化

移除元素

方法一:双指针

题目要求在原数组的基础进行元素的删除,所以输出的数组长度一定小于原数组的长度,因此可以使用双指针,rigth 指针指向将要处理的元素,left 指针指向将要赋值的元素的位置。

  • 如果 right 指针指向的元素不等于 val,那么它就一定是将要输出的元素,将该元素赋值到 left 指针指向的位置,同时将 rightleft 指针同时右移。
  • 如果 right 指针指向的元素等于 val,那么它就一定不是要输出的元素,此时 left 不动,right 右移。

最后 left 的值就是要输出的数组的长度。

class Solution {public int removeElement(int[] nums, int val) {int n = nums.length;int left = 0;for (int right = 0; right < n; right++) {if (nums[right] != val) {nums[left] = nums[right];left++;}}return left;}
}

时间复杂度: O(n)
n 为数组的长度,最多只需要遍历该数组两遍

空间复杂度: O(1)
仅需要常数的空间保存若干变量

方法二:双指针优化

方法一中,我们的两个指针都是从 0 开始的,实际上,我们可以一个指针从头开始,一个指针从尾开始,这样就最多仅需要遍历一次数组就可以了。

class Solution {public int removeElement(int[] nums, int val) {int left = 0;int right = nums.length;while (left < right) {if (nums[left] == val) {nums[left] = nums[right - 1];right -- ;} else {left ++ ;}}return left;}
}

时间复杂度: O(n)
n 为数组的长度,最多只需要遍历该数组一遍

空间复杂度: O(1)
仅需要常数的空间保存若干变量

http://www.wooajung.com/news/28928.html

相关文章:

  • 做视频网站利润如何处理免费制作永久个人网站
  • 微信小程序点餐系统怎么做北京推广优化经理
  • 网站开发哪家好厦门网络推广哪家强
  • 深圳上市公司网站建设海外社交媒体营销
  • 咸阳网站建设多少钱黄页网络的推广网站有哪些
  • 网站开发主要用什么语言亚洲长尾关键词挖掘
  • 沧州英文网站制作迅雷磁力链bt磁力种子
  • 360网站做二维码百度搜索量查询
  • 国外大气网站免费企业黄页查询官网
  • 云南品牌网站开发国内外十大免费crm软件推荐
  • 快速网站备案东莞网络优化公司
  • 邯郸做网站公司国内搜索引擎排名第一
  • 做网站的成本有多少seo咨询岳阳
  • 天津河西做网站哪家好百度地图推广电话
  • 佛山电商网站制作团队新乡网络推广外包
  • wordpress 百度搜索图片百度seo权重
  • 往网站上做新东西需要什么个人网站设计内容
  • 网站开发实用技术第2版课后答案资源优化网站排名
  • 服装市场调网站建设的目的seo专业培训seo专业培训
  • html5做静态网站免费培训机构管理系统
  • wordpress 更新超时关键词seo价格
  • 织梦装修公司网站模板郑州官网网站推广优化公司
  • 如何做盗版视频网站百度导航下载2020新版语音
  • 网站路径优化seo和sem的区别与联系
  • 用vuejs做网站百度企业网盘
  • 手机网站seo优化seo是什么
  • 简约的网站设计网站seo最新优化方法
  • 做预算查市场价格的网站农业推广
  • 茶叶市场网站建设方案站长推荐黄色
  • 山西做网站的公司有哪些泉州百度关键词优化