@@ -39,10 +39,33 @@ int[] LeaveTwoDuplicates(int[] arrayOfNumbers)
39
39
40
40
int [ ] RemoveElement ( int [ ] arrayOfNumbers , int elementToRemove )
41
41
{
42
- return arrayOfNumbers . Where ( element => element != elementToRemove )
42
+ return arrayOfNumbers
43
+ . Where ( element => element != elementToRemove )
43
44
. ToArray ( ) ;
44
45
}
45
46
47
+ int [ ] MoveZeros ( int [ ] arrayOfNumbers )
48
+ {
49
+ var zeroCount = 0 ;
50
+ var listOfElements = new List < int > ( ) ;
51
+ for ( int index = 0 ; index < arrayOfNumbers . Length ; index ++ )
52
+ {
53
+ var actualElement = arrayOfNumbers [ index ] ;
54
+ if ( actualElement == 0 )
55
+ {
56
+ zeroCount ++ ;
57
+ }
58
+ else
59
+ {
60
+ listOfElements . Add ( actualElement ) ;
61
+ }
62
+ }
63
+ listOfElements
64
+ . AddRange ( Enumerable . Range ( 1 , zeroCount )
65
+ . Select ( x => 0 ) ) ;
66
+ return listOfElements . ToArray ( ) ;
67
+ }
68
+
46
69
[ Test ]
47
70
public void RemoveDuplicatesFromSortedArray_1 ( )
48
71
{
@@ -76,5 +99,16 @@ public void RemoveElement_3()
76
99
77
100
Assert . AreEqual ( expectedArrayWithElements , arrayWithRemoveElement ) ;
78
101
}
102
+
103
+ [ Test ]
104
+ public void MoveZeros_4 ( )
105
+ {
106
+ var arrayWithZeros = new int [ ] { 1 , 0 , 5 , 0 , 0 , 3 } ;
107
+ var expectedArrayWithZerosInTheEnd = new int [ ] { 1 , 5 , 3 , 0 , 0 , 0 } ;
108
+
109
+ var arrayWithRemoveElement = MoveZeros ( arrayWithZeros ) ;
110
+
111
+ Assert . AreEqual ( expectedArrayWithZerosInTheEnd , arrayWithRemoveElement ) ;
112
+ }
79
113
}
80
114
}
0 commit comments