update a better solution
This commit is contained in:
parent
5b5f172e6b
commit
c74409bddc
59
80-231129/main.cpp
Normal file
59
80-231129/main.cpp
Normal file
@ -0,0 +1,59 @@
|
||||
#include<bits/stdc++.h>
|
||||
using namespace std;
|
||||
|
||||
class Solution {
|
||||
public:
|
||||
int removeDuplicates(vector<int>& nums) {
|
||||
const int number_limit = 2*1e4+10;
|
||||
int numbers[number_limit] = {};
|
||||
const int shift = 1e4;
|
||||
for(int i = 0 ; i < nums.size() ; i++){
|
||||
numbers[nums[i]+shift]++;
|
||||
}
|
||||
int sum = 0;
|
||||
int cur = 0;
|
||||
for(int i = 0 ; i < number_limit ;i++){
|
||||
if(numbers[i]>=2){
|
||||
nums[cur++] = i-shift;
|
||||
nums[cur++] = i-shift;
|
||||
sum += 2;
|
||||
}else if(numbers[i] == 1){
|
||||
nums[cur++] = i-shift;
|
||||
sum += 1;
|
||||
}
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
int better(vector<int>& nums){
|
||||
int i = 0 ;
|
||||
for(int ele: nums){
|
||||
if( i==0 || i==1 || nums[i-2]!=ele){
|
||||
nums[i] = ele;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
return i;
|
||||
}
|
||||
};
|
||||
|
||||
int main(){
|
||||
|
||||
Solution sol;
|
||||
vector<int> ex1 = {1,1,1,2,2,3};
|
||||
// int k = sol.removeDuplicates(ex1);
|
||||
int k = sol.better(ex1);
|
||||
cout<<k<<endl;
|
||||
for(int i = 0 ; i < k ; i++){
|
||||
cout<<ex1[i]<<' ';
|
||||
}
|
||||
cout<<endl;
|
||||
vector<int> ex2 = {0,0,1,1,1,1,2,3,3};
|
||||
// k = sol.removeDuplicates(ex2);
|
||||
k = sol.better(ex2);
|
||||
cout<<k<<endl;
|
||||
for(int i = 0 ; i < k ; i++){
|
||||
cout<<ex2[i]<<' ';
|
||||
}
|
||||
cout<<endl;
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user