[leetcode] 670. 最大交换 M

简介: [leetcode] 670. 最大交换 M

给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。


示例 1 :


输入: 2736

输出: 7236

解释: 交换数字2和数字7。

示例 2 :


输入: 9973

输出: 9973

解释: 不需要交换。

注意:


给定数字的范围是 [0, 108]


因为只有8位数,直接穷举,留点头发吧~

class Solution {
public  int maximumSwap(int num) {
        char[] ch = String.valueOf(num).toCharArray();
        int n = ch.length;
        for(int i=0; i<n; i++) {
            for(int j=i+1; j<n; j++) {
                swap(ch, i, j);
                num = Math.max(num, Integer.parseInt(new String(ch)));
                swap(ch, i, j);
            }
        }
        return num;
    }

    public void swap(char[]src, int a, int b) {
        char reg = src[a];
        src[a] = src[b];
        src[b] = reg;
    }
}
相关文章
|
7月前
|
测试技术
力扣888 公平糖果交换
力扣888 公平糖果交换
|
Java
24. 两两交换链表中的节点 -- 力扣 --JAVA
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
43 0
|
7月前
|
测试技术
LeetCode | 24.两两交换链表中的节点(C语言版)
LeetCode | 24.两两交换链表中的节点(C语言版)
90 0
|
2月前
LeetCode第二十四题(两两交换链表中的节点)
这篇文章介绍了LeetCode第24题的解法,即如何通过使用三个指针(preNode, curNode, curNextNode)来两两交换链表中的节点,并提供了详细的代码实现。
22 0
LeetCode第二十四题(两两交换链表中的节点)
|
4月前
|
算法
LeetCode第24题两两交换链表中的节点
这篇文章介绍了LeetCode第24题"两两交换链表中的节点"的解题方法,通过使用虚拟节点和前驱节点技巧,实现了链表中相邻节点的交换。
LeetCode第24题两两交换链表中的节点
|
6月前
|
机器学习/深度学习 存储 算法
Python5种算法回溯+剪枝、字典序、递归交换、计数回溯、迭代法 实现全排列ll【力扣题47】
Python5种算法回溯+剪枝、字典序、递归交换、计数回溯、迭代法 实现全排列ll【力扣题47】
|
6月前
|
存储 机器学习/深度学习 算法
python 3种算法 回溯法、字典序生成、递归交换 实现全排列【力扣46题】
python 3种算法 回溯法、字典序生成、递归交换 实现全排列【力扣46题】
|
6月前
|
存储 SQL 算法
|
7月前
|
人工智能
888. 公平的糖果棒交换(力扣)
888. 公平的糖果棒交换(力扣)
|
7月前
|
索引
【力扣刷题】删除链表的倒数第 N 个结点、两两交换链表中的节点、随机链表的复制
【力扣刷题】删除链表的倒数第 N 个结点、两两交换链表中的节点、随机链表的复制
37 0