LeetCode题解——移除元素

LeetCode题解——移除元素

  • 题目介绍

LeetCode题解——移除元素_第1张图片

LeetCode题解——移除元素_第2张图片

  • 解题思路
  1. 这题的解题思路其实和LeetCode题解——删除有序数组中的重复项_yxh_1_的博客-CSDN博客蛮像的
  2. 首先我们定义一个index,把index看成我们想要的结果下标,遍历数组,当元素的值与目标值不一样时,那就将元素拷贝到nums[index++]
  3. 那么最后到index结束的前面所有的元素都是不包含val的,而新的数组长度就是index+1,也就是原来数组长度减去val出现的次数
  • 代码示例
class Solution {
public:
    int removeElement(vector& nums, int val) {
        int len = nums.size();
        if(len == 0) {
            return 0;
        }
        int index = 0;
        int count = 0;//val出现的次数
        for(int i = 0; i < len; i++) {
            if(nums[i] == val) {
                count++;
                continue;
            }
            nums[index++] = nums[i];
        }
        return len -count;
    }
};

 

你可能感兴趣的:(算法,leetcode)