入门级
283. Move Zeroes
class Solution {
public:
void swap(vector<int>& nums, int a, int b) {
int tmp = nums[a];
nums[a] = nums[b];
nums[b] = tmp;
}
void moveZeroes(vector<int>& nums) {
int len = nums.size();
for(int i = 0, k = 0; i < len; i++) {
if(nums[i]) {
if(k != i) {
swap(nums, i, k);
}
k++;
}
}
}
};
27. Remove Element
class Solution {
public:
void swap(vector<int>& nums, int a, int b) {
int tmp = nums[a];
nums[a] = nums[b];
nums[b] = tmp;
}
int removeElement(vector<int>& nums, int val) {
int len = nums.size();
int new_len = 0;
for(int idx = 0; idx < len; idx++) {
if(nums[idx] != val) {
if(idx != new_len) {
swap(nums, idx, new_len);
}
new_len++;
}
}
return new_len;
}
};
26. Remove Duplicates from Sorted Array
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int len = nums.size();
int new_len = 1;
if(!len) {
return 0;
}
int tmp = nums[0];
for(int idx = 1; idx < len; idx++) {
if(tmp != nums[idx]) {
if(new_len != idx) {
nums[new_len] = nums[idx];
}
new_len++;
}
tmp = nums[idx];
}
return new_len;
}
};
80. Remove Duplicates from Sorted Array II
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int len = nums.size();
int new_len = 1;
if(!len) {
return 0;
}
int tmp = nums[0];
bool isDiff = true;
for(int idx = 1; idx < len; idx++) {
if(tmp != nums[idx]) {
if(new_len != idx) {
nums[new_len] = nums[idx];
}
isDiff = true;