中国石油天然气第七建设公司网站,网页游戏传奇大全,网站建设视频下载,网页首页制作模板670. 最大交换
给定一个非负整数#xff0c;你至多可以交换一次数字中的任意两位。返回你能得到的最大值。
示例 1 :
输入: 2736 输出: 7236 解释: 交换数字2和数字7。 示例 2 :
输入: 9973 输出: 9973 解释: 不需要交换。
解题思路
目标就是优先锁定高位#xff0c;像…670. 最大交换
给定一个非负整数你至多可以交换一次数字中的任意两位。返回你能得到的最大值。
示例 1 :
输入: 2736 输出: 7236 解释: 交换数字2和数字7。 示例 2 :
输入: 9973 输出: 9973 解释: 不需要交换。
解题思路
目标就是优先锁定高位像低位找比当前位更大的并且位置越后越好因为越前的位置占的权重越大而我们交换以后会让低位变小因此我们是需要优先将小权重的数位变小
代码
class Solution {public int maximumSwap(int num) {char[] chars String.valueOf(num).toCharArray();int nchars.length;for (int i0;in;i){int ci;for (int ji1;jn;j){if (chars[i]!chars[j]chars[j]chars[c])cj;}if (c!i){char tchars[c];chars[c]chars[i];chars[i]t;return Integer.parseInt(new String(chars));}}return num;}
}