Remove Duplicates From Sorted Array 334 Easy
Remove duplicates from sorted array
Given a sorted array, the task is to remove the duplicate elements from the array.
Examples:
Input : arr[] = {2, 2, 2, 2, 2} Output : arr[] = {2} new size = 1 Input : arr[] = {1, 2, 2, 3, 4, 4, 4, 5, 5} Output : arr[] = {1, 2, 3, 4, 5} new size = 5
Method 1: (Using extra space)
- Create an auxiliary array temp[] to store unique elements.
- Traverse input array and one by one copy unique elements of arr[] to temp[]. Also keep track of count of unique elements. Let this count be j.
- Copy j elements from temp[] to arr[] and return j
Implementation:
C++
#include <iostream>
using
namespace
std;
int
removeDuplicates(
int
arr[],
int
n)
{
if
(n == 0 || n == 1)
return
n;
int
temp[n];
int
j = 0;
for
(
int
i = 0; i < n - 1; i++)
if
(arr[i] != arr[i + 1])
temp[j++] = arr[i];
temp[j++] = arr[n - 1];
for
(
int
i = 0; i < j; i++)
arr[i] = temp[i];
return
j;
}
int
main()
{
int
arr[] = { 1, 2, 2, 3, 4, 4, 4, 5, 5 };
int
n =
sizeof
(arr) /
sizeof
(arr[0]);
n = removeDuplicates(arr, n);
for
(
int
i = 0; i < n; i++)
cout << arr[i] <<
" "
;
return
0;
}
C
#include <stdio.h>
int
removeDuplicates(
int
arr[],
int
n)
{
if
(n == 0 || n == 1)
return
n;
int
temp[n];
int
j = 0;
for
(
int
i = 0; i < n - 1; i++)
if
(arr[i] != arr[i + 1])
temp[j++] = arr[i];
temp[j++] = arr[n - 1];
for
(
int
i = 0; i < j; i++)
arr[i] = temp[i];
return
j;
}
int
main()
{
int
arr[] = { 1, 2, 2, 3, 4, 4, 4, 5, 5 };
int
n =
sizeof
(arr) /
sizeof
(arr[0]);
n = removeDuplicates(arr, n);
for
(
int
i = 0; i < n; i++)
printf
(
"%d "
, arr[i]);
return
0;
}
Java
class
Main {
static
int
removeDuplicates(
int
arr[],
int
n)
{
if
(n ==
0
|| n ==
1
)
return
n;
int
[] temp =
new
int
[n];
int
j =
0
;
for
(
int
i =
0
; i < n -
1
; i++)
if
(arr[i] != arr[i +
1
])
temp[j++] = arr[i];
temp[j++] = arr[n -
1
];
for
(
int
i =
0
; i < j; i++)
arr[i] = temp[i];
return
j;
}
public
static
void
main(String[] args)
{
int
arr[] = {
1
,
2
,
2
,
3
,
4
,
4
,
4
,
5
,
5
};
int
n = arr.length;
n = removeDuplicates(arr, n);
for
(
int
i =
0
; i < n; i++)
System.out.print(arr[i] +
" "
);
}
}
Python3
def
removeDuplicates(arr, n):
if
n
=
=
0
or
n
=
=
1
:
return
n
temp
=
list
(
range
(n))
j
=
0
;
for
i
in
range
(
0
, n
-
1
):
if
arr[i] !
=
arr[i
+
1
]:
temp[j]
=
arr[i]
j
+
=
1
temp[j]
=
arr[n
-
1
]
j
+
=
1
for
i
in
range
(
0
, j):
arr[i]
=
temp[i]
return
j
arr
=
[
1
,
2
,
2
,
3
,
4
,
4
,
4
,
5
,
5
]
n
=
len
(arr)
n
=
removeDuplicates(arr, n)
for
i
in
range
(n):
print
(
"%d"
%
(arr[i]), end
=
" "
)
C#
using
System;
class
GFG {
static
int
removeDuplicates(
int
[]arr,
int
n)
{
if
(n == 0 || n == 1)
return
n;
int
[]temp =
new
int
[n];
int
j = 0;
for
(
int
i = 0; i < n - 1; i++)
if
(arr[i] != arr[i+1])
temp[j++] = arr[i];
temp[j++] = arr[n-1];
for
(
int
i = 0; i < j; i++)
arr[i] = temp[i];
return
j;
}
public
static
void
Main ()
{
int
[]arr = {1, 2, 2, 3, 4, 4, 4, 5, 5};
int
n = arr.Length;
n = removeDuplicates(arr, n);
for
(
int
i = 0; i < n; i++)
Console.Write(arr[i] +
" "
);
}
}
Javascript
<script>
function
removeDuplicates(arr, n)
{
if
(n==0 || n==1)
return
n;
var
temp =
new
Array(n);
var
j = 0;
for
(
var
i=0; i<n-1; i++)
if
(arr[i] != arr[i+1])
temp[j++] = arr[i];
temp[j++] = arr[n-1];
for
(
var
i=0; i<j; i++)
arr[i] = temp[i];
return
j;
}
var
arr = [1, 2, 2, 3, 4, 4, 4, 5, 5];
var
n = arr.length;
n = removeDuplicates(arr, n);
for
(
var
i=0; i<n; i++)
document.write( arr[i]+
" "
);
</script>
Time Complexity : O(n)
Auxiliary Space : O(n)
Method 2: (Constant extra space)
Just maintain a separate index for same array as maintained for different array in Method 1.
Implementation:
C++
#include<iostream>
using
namespace
std;
int
removeDuplicates(
int
arr[],
int
n)
{
if
(n==0 || n==1)
return
n;
int
j = 0;
for
(
int
i=0; i < n-1; i++)
if
(arr[i] != arr[i+1])
arr[j++] = arr[i];
arr[j++] = arr[n-1];
return
j;
}
int
main()
{
int
arr[] = {1, 2, 2, 3, 4, 4, 4, 5, 5};
int
n =
sizeof
(arr) /
sizeof
(arr[0]);
n = removeDuplicates(arr, n);
for
(
int
i=0; i<n; i++)
cout << arr[i] <<
" "
;
return
0;
}
Java
class
Main
{
static
int
removeDuplicates(
int
arr[],
int
n)
{
if
(n ==
0
|| n ==
1
)
return
n;
int
j =
0
;
for
(
int
i =
0
; i < n-
1
; i++)
if
(arr[i] != arr[i+
1
])
arr[j++] = arr[i];
arr[j++] = arr[n-
1
];
return
j;
}
public
static
void
main (String[] args)
{
int
arr[] = {
1
,
2
,
2
,
3
,
4
,
4
,
4
,
5
,
5
};
int
n = arr.length;
n = removeDuplicates(arr, n);
for
(
int
i=
0
; i<n; i++)
System.out.print(arr[i]+
" "
);
}
}
# Python3 program to remove # duplicate elements # This function returns new # size of modified array def removeDuplicates(arr, n): if n == 0 or n == 1: return n # To store index of next # unique element j = 0 # Doing same as done # in Method 1 Just # maintaining another # updated index i.e. j for i in range(0, n-1): if arr[i] != arr[i+1]: arr[j] = arr[i] j += 1 arr[j] = arr[n-1] j += 1 return j # Driver code arr = [1, 2, 2, 3, 4, 4, 4, 5, 5] n = len(arr) # removeDuplicates() returns # new size of array. n = removeDuplicates(arr, n) # Print updated array for i in range(0, n): print (" %d "%(arr[i]), end = " ")
C#
using
System;
class
GfG {
static
int
removeDuplicates(
int
[]arr,
int
n)
{
if
(n == 0 || n == 1)
return
n;
int
j = 0;
for
(
int
i = 0; i < n - 1; i++)
if
(arr[i] != arr[i + 1])
arr[j++] = arr[i];
arr[j++] = arr[n - 1];
return
j;
}
public
static
void
Main ()
{
int
[]arr = {1, 2, 2, 3, 4, 4,
4, 5, 5};
int
n = arr.Length;
n = removeDuplicates(arr, n);
for
(
int
i = 0; i < n; i++)
Console.Write(arr[i] +
" "
);
}
}
Javascript
<script>
function
removeDuplicates(arr , n) {
if
(n == 0 || n == 1)
return
n;
var
j = 0;
for
(i = 0; i < n - 1; i++)
if
(arr[i] != arr[i + 1])
arr[j++] = arr[i];
arr[j++] = arr[n - 1];
return
j;
}
var
arr = [ 1, 2, 2, 3, 4, 4, 4, 5, 5 ];
var
n = arr.length;
n = removeDuplicates(arr, n);
for
(i = 0; i < n; i++)
document.write(arr[i] +
" "
);
</script>
Time Complexity : O(n)
Auxiliary Space : O(1)
This article is contributed by Sahil Chhabra. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Source: https://www.geeksforgeeks.org/remove-duplicates-sorted-array/
0 Response to "Remove Duplicates From Sorted Array 334 Easy"
إرسال تعليق