adding leetcode problem
This commit is contained in:
@@ -188,6 +188,4 @@ std::sort( a, a+n );
|
|||||||
|
|
||||||
## 4.10 Exercises
|
## 4.10 Exercises
|
||||||
|
|
||||||
- [Leetcode problem 905: Sort Array By Parity](https://leetcode.com/problems/sort-array-by-parity/). Solution: [p905_sortarraybyparity.cpp](../../leetcode/p905_sortarraybyparity.cpp)
|
- [Leetcode problem 26: Remove Duplicates from Sorted Array](https://leetcode.com/problems/remove-duplicates-from-sorted-array/). Solution: [p26_removeduplicates.cpp](../../leetcode/p26_removeduplicates.cpp)
|
||||||
- [Leetcode problem 977: Squares of a Sorted Array](https://leetcode.com/problems/squares-of-a-sorted-array/). Solution: [p977_sortedsquare.cpp](../../leetcode/p977_sortedsquare.cpp)
|
|
||||||
- [Leetcode problem 1051: Height Checker](https://leetcode.com/problems/height-checker/). Solution: [p1051_heightchecker.cpp](../../leetcode/p1051_heightchecker.cpp)
|
|
||||||
|
|||||||
79
leetcode/p26_removeduplicates.cpp
Normal file
79
leetcode/p26_removeduplicates.cpp
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
class Solution {
|
||||||
|
public:
|
||||||
|
/* // just use vectors
|
||||||
|
int removeDuplicates(vector<int>& nums) {
|
||||||
|
int size = nums.size();
|
||||||
|
if(size == 0){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if(size == 1){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
// nums has at least 2 elements
|
||||||
|
int j = 1;
|
||||||
|
for(int i=0;i<size-1;i++){
|
||||||
|
if(nums[i+1]!=nums[i]){
|
||||||
|
// meaning nums[i+1] is a new number, we should store it in nums[j]
|
||||||
|
nums[j] = nums[i+1];
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return j;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
/* // use C arrays
|
||||||
|
int removeDuplicates(vector<int>& nums) {
|
||||||
|
int size = nums.size();
|
||||||
|
int array[size];
|
||||||
|
for(int i=0;i<size;i++){
|
||||||
|
array[i] = nums[i];
|
||||||
|
}
|
||||||
|
if(size == 0){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if(size == 1){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
// nums has at least 2 elements
|
||||||
|
int j = 1;
|
||||||
|
for(int i=0;i<size-1;i++){
|
||||||
|
if(array[i+1]!=array[i]){
|
||||||
|
// meaning nums[i+1] is a new number, we should store it in nums[j]
|
||||||
|
array[j] = array[i+1];
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(int i=0;i<j;i++){
|
||||||
|
nums[i] = array[i];
|
||||||
|
}
|
||||||
|
return j;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
// use c arrays with pointer arithmetic
|
||||||
|
int removeDuplicates(vector<int>& nums) {
|
||||||
|
int size = nums.size();
|
||||||
|
int array[size];
|
||||||
|
for(int i=0;i<size;i++){
|
||||||
|
*(array+i) = nums[i];
|
||||||
|
}
|
||||||
|
if(size == 0){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if(size == 1){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
// nums has at least 2 elements
|
||||||
|
int j = 1;
|
||||||
|
for(int i=0;i<size-1;i++){
|
||||||
|
if(*(array+i+1)!=*(array+i)){
|
||||||
|
// meaning nums[i+1] is a new number, we should store it in nums[j]
|
||||||
|
*(array+j) = *(array+i+1);
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(int i=0;i<j;i++){
|
||||||
|
nums[i] = *(array+i);
|
||||||
|
}
|
||||||
|
return j;
|
||||||
|
}
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user