-
Notifications
You must be signed in to change notification settings - Fork 0
/
RemoveDuplicates.swift
35 lines (29 loc) · 1000 Bytes
/
RemoveDuplicates.swift
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
29
30
31
32
33
34
35
//
//Taken from LeetCode's Remove duplicates problem found at:
//https://leetcode.com/problems/remove-duplicates-from-sorted-array/description/
//
//Given a sorted array, remove the duplicates in-place such that each element appear only once and return the new length.
//
//Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
//
//Example:
//
//Given nums = [1,1,2],
//
//Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively.
//It doesn't matter what you leave beyond the new length.
//
class Solution {
func removeDuplicates(_ nums: inout [Int]) -> Int {
var total = 0
var i = 0
while i < nums.count {
total += 1
while i + 1 < nums.count && nums[i] == nums[i + 1] {
nums.remove(at: i + 1)
}
i += 1
}
return total
}
}