LeetCode刷670 最大交换

    技术2022-07-12  89

    先排序 挑最大的与第一个不同的交换

    public int maximumSwap(int num) { String s = String.valueOf(num); char[] chars =s.toCharArray(); Arrays.sort(chars); int change=0; int index=-1; int changeindex =-1; char[] newc =s.toCharArray(); for (int i = 0; i <chars.length; i++) { if(index==-1){ boolean b = s.charAt(i) != chars[chars.length-i-1]; if(b){ change=chars[chars.length-i-1]; index=i; } }else { if(change==s.charAt(i)){ changeindex=i; } } } if( changeindex!=-1){ char c = newc[changeindex]; newc[changeindex]=newc[index]; newc[index] = c; } return Integer.valueOf(String.valueOf(newc)); }
    Processed: 0.030, SQL: 9