LeetCode27 移除元素 2018.4.17

原创 2018年04月17日 13:25:07

题干:

给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

示例 1:

给定 nums = [3,2,2,3], val = 3,

函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。

你不需要考虑数组中超出新长度后面的元素。

示例 2:

给定 nums = [0,1,2,2,3,0,4,2], val = 2,

函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。

注意这五个元素可为任意顺序。

你不需要考虑数组中超出新长度后面的元素。

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝
int len = removeElement(nums, val);

// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。
for (int i = 0; i < len; i++) {
    print(nums[i]);

ac代码如下

#include<iostream>
#include<vector>
#include<string>
using namespace std;
class Solution {
public:
    int removeElement(vector<int>& nums, int val)
    {
        int len = nums.size();
        int j = 0;
        for(int i = 0;i<len;i++)
        {
            if(nums[i] != val)
                nums[j++] = nums[i];
        }
        return j;
    }
};
int main()
{
    Solution s;
    vector<int>num = {1,2,2,2,3,4};
    cout<<s.removeElement(num,2)<<endl;
}

LeetCode 27 Remove Element(移除元素)

翻译这里写代码片原文Given an array and a value, remove all instances of that value in place and return the new...
  • NoMasp
  • NoMasp
  • 2015-11-13 23:25:35
  • 3734

leetcode27

leetcode27------------Remove Element 删除数组中指定的元素,并且返回新的数组长度。 这道题目依然投机取巧,主要使用std::find和erase来对迭代器进行操...
  • zhangxiao93
  • zhangxiao93
  • 2015-10-09 16:05:45
  • 448

leetcode27题 题解 翻译 C语言版 Python版

27. Remove Element Given an array and a value, remove all instances of that value in place and ...
  • yingzinanfei
  • yingzinanfei
  • 2016-04-15 09:43:08
  • 1365

leetcode27 Remove Element 去掉指定的元素

Given an array and a value, remove all instances of that value in place and return the new length. ...
  • chenKFKevin
  • chenKFKevin
  • 2017-10-17 16:42:32
  • 1319

LeetCode 27

这个题目给的数组是无序的数组,要求删除特定的元素,然后返回剩余数组的长度。还是比较简单的一个题目,相当于是放松一下我们的心情,增加点自信心,不至于一直做难题而自卑。好了,题目的主要思路是:依次找到不是...
  • zr1076311296
  • zr1076311296
  • 2016-04-26 17:54:25
  • 4024

2018.4.17

最近就是时间充沛的时候研究图那一块的东西,将笑着走完自己的路里的最短路和stl,贪心,递归,水题利用松散时间看的,目前在看LCA,树链剖分那块的题目,自己敲还是很难的。然后这两天打的比赛就是感觉自己要...
  • xianpingping
  • xianpingping
  • 2018-04-17 22:06:58
  • 1

LeetCOde27详细分析并附求解代码

分析并解决了LeetCode上的第27题,提出了对于数组删减元素常用的方法 写在最后:读者在读到本文的时候如果有什么想法和问题,欢迎和小编进行沟通交流,希望我们可以共同进步^_^(ps:如果读者有需要...
  • SEUer_jeff
  • SEUer_jeff
  • 2017-01-16 19:45:18
  • 194

jquery移除追加元素

最近做的java web项目视图层是用html5,然后页面通过ajax发起请求,收到服务端响应后用jquery把数据渲染到页面。服务端和视图层完全解耦,我觉得有三点好处!一分工更明确;二以这种方式提供...
  • qq_33556185
  • qq_33556185
  • 2016-02-02 16:50:08
  • 1865

Leetcode #27. Remove Element 移除元素 解题报告

1 解题思想原题不就是说,给定数组,和一个目标值。。把数组里等于目标值的给删了么,最后还剩几个。。这道题虽然只说有几个。。但是似乎还是要交换的,不只是单纯的统计。。检查的时候会遍历检查的2 原题原题 ...
  • MebiuW
  • MebiuW
  • 2016-03-29 23:25:15
  • 747

LeetCode27——Remove Element(移除数组中指定的元素)

题目: 解法: class Solution { public: int removeElement(vector& nums, int val) { int...
  • oqqHuTu12345678
  • oqqHuTu12345678
  • 2017-06-22 17:04:59
  • 162
收藏助手
不良信息举报
您举报文章:LeetCode27 移除元素 2018.4.17
举报原因:
原因补充:

(最多只允许输入30个字)