Skip to content

Commit 9d4be99

Browse files
committed
swap
1 parent e31c8a5 commit 9d4be99

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

‎Med670.java

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
//maximum swap
2+
3+
4+
class Solution {
5+
public int maximumSwap(int num) {
6+
char numArr[] = Integer.toString(num).toCharArray();
7+
int n = numArr.length;
8+
char maxElement = numArr[n-1];
9+
int maxIndex = n-1;
10+
int swapIdx1 = -1;
11+
int swapIdx2 = -1;
12+
for(int i=n-2;i>=0;i--){
13+
if(numArr[i] > maxElement){
14+
maxElement = numArr[i];
15+
maxIndex = i;
16+
}else if(numArr[i] < maxElement){
17+
swapIdx1 = i;
18+
swapIdx2 = maxIndex;
19+
}
20+
}
21+
22+
//perform swapping
23+
if(swapIdx1!=-1){
24+
char temp = numArr[swapIdx1];
25+
numArr[swapIdx1] = numArr[swapIdx2];
26+
numArr[swapIdx2] = temp;
27+
}
28+
return Integer.parseInt(new String(numArr));
29+
30+
}
31+
}
32+

0 commit comments

Comments
 (0)