leetcode.数组.27移除元素-Java
2024-10-11 04:39:36
1. 具体题目
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。
2. 思路分析
将数组中数值为 val 的元素赋值为当前数组尾部元素值:设置前后指针 left & right,left 遍历数组,遇到数值为 val 的元素就将其赋值为 right 所指的元素的值,当 left 与 right 相遇时循环结束。思路比较简单,但需要注意代码细节。
3. 代码
public int removeElement(int[] nums, int val) {
int left = 0,;
int right = nums.length; //*注意right指针移动过程
while(left < right){
if(nums[left] == val){
nums[left] = nums[right - 1]; //**
right--; //赋值后left不变,需要再经历一次判断,防止交换过来的值也等于val
}else{
left++;
}
}
return right; //***
}
最新文章
- 小菜学习编程-Winform系列(初学者)
- 磁盘IO
- elasticsearch相关文章
- web框架思考
- JS页面打印,预览,设置,分页
- mysql 概念和逻辑架构
- [GIF] Shape Objects in GIF Loop Coder
- ubuntu学习笔记--不断更新中
- c++之 变量
- jsoup UnsupportedMimeTypeExceptio
- Java发送新浪微博的问题
- jupyter notebook添加虚拟环境
- jqgrid 单列排序和组合排序
- PAT甲题题解-1068. Find More Coins (30)-dp,01背包
- lumen 使用 dingo API 在 phpunit 中 404 的解决方法, 以及鉴权问题
- 83. Remove Duplicates from Sorted List + 82. Remove Duplicates from Sorted List II
- [POJ2356]Find a multiple 题解(鸽巢原理)
- HashCode的秘密
- Acm hust 1.25
- python接口自动化12-案例分析(csrfToken)【转载】