C++实现LeetCode(27.移除元素)

 更新时间:2021年07月14日 08:37:36   作者:移除元素  
这篇文章主要介绍了C++实现LeetCode(27.移除元素),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

[LeetCode] 27. Remove Element 移除元素

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]);
}

这道题让我们移除一个数组中和给定值相同的数字,并返回新的数组的长度。是一道比较容易的题,只需要一个变量用来计数,然后遍历原数组,如果当前的值和给定值不同,就把当前值覆盖计数变量的位置,并将计数变量加1。代码如下:

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

到此这篇关于C++实现LeetCode(27.移除元素)的文章就介绍到这了,更多相关C++实现移除元素内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++ 中

    C++ 中"priority_queue" 优先级队列实例详解

    这篇文章主要介绍了C++ 中"priority_queue" 优先级队列实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • C++命名空间 namespace详解

    C++命名空间 namespace详解

    定义命名空间,使用namespace关键字,后面跟命名空间的名字,然后接一对花括号{ } 即可,{ }中即为命名空间的成员,这篇文章主要介绍了C++命名空间 namespace,需要的朋友可以参考下
    2023-04-04
  • C++函数指针+对象指针+this指针+指向类静态和非静态成员的指针

    C++函数指针+对象指针+this指针+指向类静态和非静态成员的指针

    这篇文章主要介绍了C++函数指针+对象指针+this指针+指向类静态和非静态成员的指针,函数指针定义和赋值的语法指其中数据类型代表指向函数的返回类型,形参表为指向函数的形参表,更多相关资料需要的朋友可以参考一下下面文章内容
    2022-03-03
  • C++11新特性中auto 和 decltype 区别和联系

    C++11新特性中auto 和 decltype 区别和联系

    这篇文章主要介绍了C++11新特性中auto 和 decltype 区别和联系的相关资料,需要的朋友可以参考下
    2017-01-01
  • c++中深浅拷贝以及写时拷贝的实现示例代码

    c++中深浅拷贝以及写时拷贝的实现示例代码

    这篇文章主要给大家介绍了关于c++中深浅拷贝以及写时拷贝实现的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • 使用C语言编写基于TCP协议的Socket通讯程序实例分享

    使用C语言编写基于TCP协议的Socket通讯程序实例分享

    这篇文章主要介绍了使用C语言编写基于TCP协议的Socket通讯程序实例分享,能够实现包括重新连接与每分钟通信一次等的功能,需要的朋友可以参考下
    2016-03-03
  • 关于C++数组中重复的数字

    关于C++数组中重复的数字

    这篇文章主要介绍得是关于C++数组中重复的数字,文章以问题描述得形式,对问题展开分析用不同得方法去解决问题并附上方法得详细代码,需要的朋友可以参考以下文章得具体内容
    2021-11-11
  • C语言实现简单的三子棋游戏源码

    C语言实现简单的三子棋游戏源码

    这篇文章主要为大家详细介绍了C语言实现简单的三子棋游戏源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 解析C++ 浮点数的格式化显示

    解析C++ 浮点数的格式化显示

    本篇文章是对C++中浮点数的格式化显示进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C语言使用ffmpeg和sdl实现多路音频播放

    C语言使用ffmpeg和sdl实现多路音频播放

    这篇文章主要为大家详细介绍了一种基于ffmpeg和sdl实现的音频多路混合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下
    2023-06-06

最新评论