[039] LeetCode 27演算法【Remove Element】移除元素

M
Leetcode 演算法教學
2 min readDec 17, 2019

27. Remove Element(Easy)

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 memory.

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

Example 1:

Given nums = [3,2,2,3], val = 3,Your function should return length = 2, with the first two elements of nums being 2.It doesn't matter what you leave beyond the returned length.

Example 2:

Given nums = [0,1,2,2,3,0,4,2], val = 2,Your function should return length = 5, with the first five elements of nums containing 0, 1, 3, 0, and 4.Note that the order of those five elements can be arbitrary.It doesn't matter what values are set beyond the returned length.

Clarification:

Confused why the returned value is an integer but your answer is an array?

Note that the input array is passed in by reference, which means modification to the input array will be known to the caller as well.

Internally you can think of this:

// nums is passed in by reference. (i.e., without making a copy)
int len = removeElement(nums, val);
// any modification to nums in your function would be known by the caller.
// using the length returned by your function, it prints the first len elements.
for (int i = 0; i < len; i++) {
print(nums[i]);
}

恭喜各位,String題型已經畢業了,現在開始我們要刷Array題型的題目,這算是蠻基本的資料存儲方式的,我們接下來預計在Array這類題型會刷60-70題,建議買一下leetcode的會員,有些題目必須要付費才可以刷題。

今天這題是移除Array中的某個元素,移除完以後返回剩下的元素數量,之前有跟著前面刷題的同學應該可以很直覺得使用雙指針來處理,創建一個count的指針,並且在元素不相等的時候做交換,最後返回count就可以。

大家加油。

上一篇:[038] LeetCode 115演算法【Distinct Subsequences】不同子序列

下一篇:[040] LeetCode 26演算法【Remove Duplicates from Sorted Array】移除有序數組中重複元素

--

--