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.
Java Solution:
Runtime beats 95.05%
完成日期:03/27/2017
关键词:Array
关键点:Two Pointers
1 public class Solution 2 { 3 public int removeElement(int[] nums, int val) 4 { 5 int res = 0; // count non-val numbers 6 7 for(int i=0; i<nums.length; i++) 8 if(nums[i] != val) // once find the non-val number, swap non-val number with res index 9 nums[res++] = nums[i]; 10 11 return res; 12 } 13 }
参考资料:
http://www.cnblogs.com/grandyang/p/4606700.html
LeetCode 算法题目列表 - LeetCode Algorithms Questions List