(Array)27. Remove Element

Given an array and a value, remove all instances of that value in place and return the new length.

Do not allocate extra space for another array, you must do this in place with constant memory.

The order of elements can be changed. It doesn‘t matter what you leave beyond the new length.

Example:
Given input array nums = [3,2,2,3]val = 3

Your function should return length = 2, with the first two elements of nums being 2.

public class Solution {
  public int removeElement(int[] nums, int val) {   //更好的方法是设置两个指针都是从0开始,这样直接return i了
		int i = 0;
		int j = nums.length - 1;
		while(j > i) {
			while (nums[i] != val && j>i)  //注意这个条件
				i++;
			while (nums[j] == val && j>i)
				j--;
			swap(nums, i++, j--);
		}
		int res = 0;
		for (i = 0; i < nums.length; i++) {
			//System.out.print(nums[i] + " ");
			if (nums[i] != val)
				res++;
		}
		return res;

	}

	public  void swap(int[] arr, int i, int j) {
		int temp = arr[i];
		arr[i] = arr[j];
		arr[j] = temp;
	}
}

  

时间: 2025-01-07 11:59:02

(Array)27. Remove Element的相关文章

27. Remove Element(js)

27. Remove Element Given an array nums and a value val, remove all instances of that value in-place and return the new length. Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memor

27. Remove Element【easy】

27. Remove Element[easy] Given an array and a value, remove all instances of that value in place and return the new length. Do not allocate extra space for another array, you must do this in place with constant memory. The order of elements can be ch

LeetCode 27.Remove Element 数组元素删除

27. Remove Element Given an array and a value, remove all instances of that value in place and return the new length. Do not allocate extra space for another array, you must do this in place with constant memory. The order of elements can be changed.

JS数组(Array)操作汇总

1.去掉重复的数组元素.2.获取一个数组中的重复项.3.求一个字符串的字节长度,一个英文字符占用一个字节,一个中文字符占用两个字节.4.判断一个字符串中出现次数最多的字符,统计这个次数.5.数组排序. 6.快排. 7.删除/添加数组项. 8.数组随机顺序输出. 9.数组求和.最大值. 10.判断是否为数组. 11.冒泡排序. 1.去掉重复的数组元素. Array.prototype.unique = function() { var ret = []; var o = {}; for(var i

No.27 Remove Element

No.27 Remove Element Given an array and a value, remove all instances of that value in place and return the new length. The order of elements can be changed. It doesn't matter what you leave beyond the new length. Tags: Array Two Pointers 移除数组中所有的给定数

56. C# -- 数组(Array)

理论: C# 数组(Array) 数组是一个存储相同类型元素的固定大小的顺序集合. 数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合. 声明数组变量并不是声明 number0.number1.....number99 一个个单独的变量,而是声明一个就像 numbers 这样的变量,然后使用 numbers[0].numbers[1].....numbers[99] 来表示一个个单独的变量. 数组中某个指定的元素是通过索引来访问的 所有的数组都是由连续的内存位置组成的.最低的地址对应

Swift入门(五)——数组(Array)

集合 集合的定义 Swift中提供了两种数据结构用于存放数据的集合,分别是数组(Array)和字典(Dictionary).他们的主要区别在于数组中的元素由下标确定,而字典中的数据的值由数据的键(Key)决定.以下我们认为集合就是数组或字典. 集合的可变性 我们可以定义一个集合常量或者集合变量.一旦定义为常量,就意味着集合的长度.内容和顺序都不能再修改了.比如,定义为常量的数组,不能再向其中添加新的元素. 数组的创建 由于swift中变量的创建遵循" var 变量名:变量类型 "的语法

微软私有云分享(R2)27维护窗口的使用

维护窗口提供了计划外维护System Center 2012 R2的可能.在维护窗口所约定的时间内,可以独自对Hyper-V主机进行一些基础维护,如打补丁,关机更换硬件等操作.对于处于维护窗口的Hyper-V主机,SCVMM2012 R2不对其进行监视.同时相应的操作也不会在处于维护窗口中的Hyper-V主机进行.包括本章介绍的动态优化和电源优化,也需要在维护窗之外运行. 第1步,在"设置"对话框,点击"维护窗口"后,于顶部工具栏点击"创建维护窗口&quo

.net框架-数组(Array)&amp; ArrayList &amp; List

数组(Array)特点: 初始化时规定长度 元素类型相同 数据存储连续,效率高 System.Collections.ArrayList : 初始化时无需规定长度,长度随存储的数据动态扩充与收缩 元素类型可以不相同,其内部使用object[]实现数据存储,因此会数据读写时会频敏装箱.拆箱从而影响效率 继承接口:IList.ICollection.IEnumerable.ICloneable,数据增.删.改查十分方便 System.Collections.Generic.List<T>: 范型类