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