1. Description
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 by modifying the input array in-place with O(1) extra memory. The order of elements can be changed. It doesn't matter what you leave beyond the new length.
2. Example
Given nums = [3,2,2,3], val = 3,
Your function should return length = 2, with the first two elements of nums being 2.
3. Code
public class LeetCode0027 {
public int removeElement(int[] nums, int val)
{
if (nums == null || nums.length == 0) {
return 0;
}
int i = 0;
int length = nums.length;
while (i < length) {
if (nums[i] == val) {
nums[i] = nums[--length];
}
else {
i++;
}
}
return length;
}
public static void main(String[] args)
{
LeetCode0027 leetcode = new LeetCode0027();
int[] nums = new int[] { 3, 2, 2, 3 };
System.out.println(leetcode.removeElement(nums, 3));
}
}
Comments | NOTHING