aboutsummaryrefslogtreecommitdiff
path: root/remove_element.cpp
blob: 644f2391fa19d533ac6f1049e10862a9b505a701 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "leetcode.h"

class Solution {
public:
  int removeElement(vector<int> &nums, int val) {
    int idx = 0, k = nums.size();
    while (idx < k) {
      if (nums[idx] == val) {
        //          cout << "idx " << idx << endl;
        //          cout << "k " << k << endl;
        nums[idx] = nums[k - 1];
        --k;
      } else
        ++idx;
    }
    return k;
  }
};

int main() {
  Solution obj;
  vector<int> nums = {0, 1, 2, 2, 3, 0, 4, 2};
  int val = 2;
  for (int i = 0; i < nums.size(); i++)
    cout << nums[i] << ' ';
  cout << endl << nums.size() << endl;
  cout << obj.removeElement(nums, val);
}