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

怎么做公司网站制作南京seo公司哪家

怎么做公司网站制作,南京seo公司哪家,网站建设氺首选金手指14,惠州建站公司《算法通关村——双指针妙用》 删除元素 描述 给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。要求:不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组…

《算法通关村——双指针妙用》

删除元素

描述

给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。要求:不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

例子1: 输入:nums = [3,2,2,3], val = 3 
输出:2, nums = [2,2] 
例子2: 输入:nums = [0,1,2,2,3,0,4,2], val = 2 
输出:5, nums = [0,1,4,0,3]

三种解决方法解决

/*** 删除指定元素用快慢指针,慢指针用于填充不删除的值,快指针用于查找目标值* @param nums* @param val* @return*/
public static  int removeElement(int[] nums,int val){int slow = 0;// fast充当快指针for(int fast = 0;fast<nums.length;fast++){if(nums[fast] != val){nums[slow] = nums[fast];slow++;}}return slow;
}/*** 对撞指针的方法,两个指针从两边走,左边如果不相等(不等于目标值)就往后,right等于目标值就往前。* @param nums* @param val* @return*/
public static int removeElement1(int[] nums,int val){int right = nums.length-1;int left = 0;while(left <= right){if((nums[left]==val) && (nums[right]!= val)){int temp = nums[right];nums[right] = nums[left];nums[left] = temp;}if(nums[left] != val)  left++;if(nums[right]==val) right--;}return left;
}/*** 双指针+覆盖,这种就是直接覆盖了,如果从左开始有值等于目标值,就把他替换成从右边开始的值,然后右边指针移动,左边不动,* 然后再次判断左边原位置是否是目标值,如果是就继续覆盖,右边指针继续移动,如果不是左边指针移动。* @param nums* @param val* @return*/
public static int removeElement2(int[] nums, int val){int right = nums.length - 1;for(int left = 0; left<=right;){if(nums[left] == val){nums[left] = nums[right];right--;}else{left++;}}return right+1;
}

删除重复项

描述

给你一个有序数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组 并在使用 O(1) 额外空间的条件下完成。

示例1: 
输入:nums = [1,1,2] 
输出:2, nums = [1,2] 
解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。  
例子2: 
输入:nums = [0,0,1,1,1,2,2,3,3,4] 
输出:5, nums = [0,1,2,3,4] 
解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。

解决

/*** 删除数组中重复元素,返回数组的大小。慢指针进行存值覆盖,快指针判断是否为重复值。* @param nums* @return*/
public static int removeDuplicates(int[] nums){// slow表示可以放入新元素位置,索引为0的元素不用管.int slow = 1;// 循环起到了快指针的作用for(int fast = 0;fast < nums.length;fast++){if(nums[fast] != nums[slow-1]){nums[slow] = nums[fast];slow++;}}return slow;
}

近期在自学 Java 做项目,加入了一个编程学习圈子,里面有编程学习路线和原创的项目教程,感觉非常不错。还可以 1 对 1 和大厂嘉宾交流答疑,也希望能对大家有帮助,扫 ⬇️ 二维码即可加入。

在这里插入图片描述

也可以点击链接:我正在「编程导航」和朋友们讨论有趣的话题,你⼀起来吧?

http://www.ds6.com.cn/news/81266.html

相关文章:

  • 长沙的网站建设公司seo页面优化的方法
  • 做的网站提示磁盘空间不足公司推广宣传文案
  • 加快建设乡镇招商网站最近发生的重大新闻
  • 自己做网站要服务器吗免费seo课程
  • 如何做网站的软件做关键词优化的公司
  • 团队介绍网站建设网页制作三大软件
  • 如何免费创建个人网站优化排名推广关键词
  • 徐州h5模板建站seo和sem是什么意思
  • 廊坊网站关键字优化商旅100网页版
  • java网站开发实例视频教程百度优化插件
  • 做网站买哪家的主机好百度客服电话24小时人工服务热线
  • c2g的代表性电商平台seo实战培训教程
  • 网站做302重定向360优化大师下载
  • 做货代在哪个网站找客源网站软件推荐
  • 互动网站建设特点360网址大全
  • 中信建设有限责任公司领导班子aso关键词覆盖优化
  • 杭州企业做网站crm系统网站
  • 做日用品的网站sem是什么的缩写
  • 网站 建设的售后服务西安网络推广公司
  • 做淘宝头像的网站百度快照怎么发布
  • 哈尔滨关键词优化软件网站优化培训
  • 专业网站制作公司排名郑州网络seo公司
  • 甘肃网站建设方案及案例上海优化网站方法
  • 淮安做微信网站整站seo定制
  • 莱芜人才网最新招聘深圳关键词优化平台
  • 做企业网站的网站推广常用的方法
  • 网站建设的目标客户网站建设推广公司
  • 如何让自己做的网页有网站思亿欧seo靠谱吗
  • 做家常菜的网站哪个好seo合作代理
  • 亚洲购物网站排名可以商用的电视app永久软件