需要注意的关键是相同的数字的处理
class Solution {
public int maximumSwap(int num) {
char[]nums = String.valueOf(num).toCharArray();
for (int i = 0; i < nums.length; i++) {
char max = nums[i];
int index = i;
for (int j = i+1; j < nums.length; j++) {
if (nums[j]>=max){
index = j;
max = nums[j];
}
}
if (index!=i&&nums[i]!=nums[index]){
swap(nums,i,index);
return Integer.valueOf(String .valueOf(nums));
}
}
return Integer.valueOf(String.valueOf(nums));
}
public void swap(char[]nums,int i,int j){
char t = nums[i];
nums[i] = nums[j];
nums[j] = t;
}
}
本文介绍了一种通过交换数字中的两个位来获得最大可能数值的算法实现。该算法遍历数字的每一位,寻找可以与当前位交换以提高整体数值的更高数值位,并进行一次交换。文章展示了具体的Java代码实现,包括核心逻辑和交换方法。
521

被折叠的 条评论
为什么被折叠?



