您的位置:首页 > 娱乐 > 明星 > 淄博公益网站建设_互联网保险行业发展报告_服务营销案例100例_百度关键词相关性优化软件

淄博公益网站建设_互联网保险行业发展报告_服务营销案例100例_百度关键词相关性优化软件

2024/12/23 7:20:34 来源:https://blog.csdn.net/Gao123456fy/article/details/142672687  浏览:    关键词:淄博公益网站建设_互联网保险行业发展报告_服务营销案例100例_百度关键词相关性优化软件
淄博公益网站建设_互联网保险行业发展报告_服务营销案例100例_百度关键词相关性优化软件

 🔥博客主页🔥:【 坊钰_CSDN博客 】

欢迎各位点赞👍评论✍收藏⭐

目录

1. 题目

2. 解法(快慢“指针”) 

3. 源码

4. 小结


1. 题目

给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。

假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:

  • 更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。
  • 返回 k

 例:

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

2. 解法(快慢“指针”) 

当然 Java 里是没有指针的,这里只是类比一下

我们想一下这是一个数组,我们要原地删除数字 2

 我们先用 str 和 des 来类比指针,他俩都指向第一个位置

以 des 指针向后遍历

1,遇到的数字不等于 2 ,把des指向的数字赋值给str,des++ ,str++,都往后移动一位

2, 遇到的数字等于 2,des++

3. 源码

import java.util.Scanner;class Solution {public static int removeElement (int[] arr,int val) {int sz=arr.length;int des=0;int str=0;for(int i=0;i<sz;i++) {if(arr[des]!=val) {arr[str++]=arr[des++];    //判断条件} else {des++;}}return str;}public static void Print(int[] arr,int n) {for(int i=0;i<n;i++) {System.out.print(arr[i]+" ");    // 打印数组}System.out.println(" ");}
}public class TeatDelete {public static void main(String[] args) {int[] arr={1,2,3,4,4,3,2,2,6,2};Scanner val =new Scanner(System.in);int a=val.nextInt();int ret=Solution.removeElement(arr,a);Solution.Print(arr,ret);}
}

 

4. 小结

以上就是对移除元素的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持!

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com