File tree Expand file tree Collapse file tree 1 file changed +81
-0
lines changed Expand file tree Collapse file tree 1 file changed +81
-0
lines changed Original file line number Diff line number Diff line change 1+ ### [ Back2Home] ( https://github.com/CodingWallah/Arrays-DSA-Coding-Questions ) | [ Go2Video] ( # )
2+ ``` java
3+
4+ // Best Solution 1 || Time = O(n) , Space = O(1)
5+ class Solution {
6+ public void sortColors (int [] nums ) {
7+ int start = 0 ;
8+ int end = nums. length - 1 ;
9+ int ptr = 0 , temp = 0 ;
10+ while (ptr <= end) {
11+ switch (nums[ptr]) {
12+ case 0 : {
13+ temp = nums[start];
14+ nums[start] = nums[ptr];
15+ nums[ptr] = temp;
16+ start++ ;
17+ ptr++ ;
18+ break ;
19+ }
20+ case 1 :
21+ ptr++ ;
22+ break ;
23+ case 2 : {
24+ temp = nums[ptr];
25+ nums[ptr] = nums[end];
26+ nums[end] = temp;
27+ end-- ;
28+ break ;
29+ }
30+ }
31+ }
32+ }
33+ }
34+
35+ ```
36+
37+ ``` java
38+
39+ // Solution2 - time complexity = O(n) | space = O(1)
40+ class Solution {
41+ public void sortColors (int [] nums ) {
42+ int i= 0 , cnt0 = 0 , cnt1 = 0 , cnt2 = 0 ;
43+ for (i = 0 ; i < nums. length; i++ ) {
44+ if (nums[i]== 0 )
45+ cnt0++ ;
46+ else if (nums[i]== 1 )
47+ cnt1++ ;
48+ else if (nums[i]== 2 )
49+ cnt2++ ;
50+ }
51+
52+ i = 0 ;
53+
54+ while (cnt0 > 0 ) {
55+ nums[i++ ] = 0 ;
56+ cnt0-- ;
57+ }
58+
59+ while (cnt1 > 0 ) {
60+ nums[i++ ] = 1 ;
61+ cnt1-- ;
62+ }
63+
64+ while (cnt2 > 0 ) {
65+ nums[i++ ] = 2 ;
66+ cnt2-- ;
67+ }
68+ }
69+ }
70+
71+ ```
72+
73+ ``` java
74+
75+ // sol3 || Time = O(nlogn)
76+ class Solution {
77+ public void sortColors (int [] nums ) {
78+ Arrays . sort(nums);
79+ }
80+ }
81+ ```
You can’t perform that action at this time.
0 commit comments