[LeetCode] 27. Remove Element

Easy
Related Topics: Array / Two Pointers
LeetCode Source

解题想法

题目除了要回传最后 nums 的长度,也需要将 nums 中含有 val 的值移除
这时我们需要两个 pointer

一个 pointer i 需要指向遍历的元素另一个 pointer index 则指向要被替换的元素

在过程中,我们需要计算有哪些值不等于 val
此时 nums[i] != val 的条件恰好可以满足同时计算元素个数跟操作替换元素的动作

Python

class Solution:    def removeElement(self, nums: List[int], val: int) -> int:        index = 0        for i in range(len(nums)):            if nums[i] != val:                nums[index] = nums[i]                index += 1        return index

C++

class Solution {public:    int removeElement(vector<int>& nums, int val) {        int index = 0;        for (int i = 0; i < nums.size(); i++) {            if (nums[i] != val) {                nums[index] = nums[i];                index += 1;            }        }        return index;    }};

这系列文被记录在 Top Interview 150 Series


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章