package com.算法专练.力扣.最大交换;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author xnl
* @Description:
* @date: 2022/9/13 23:15
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
int num = 2736;
System.out.println(solution.maximumSwap2(num));
}
/**
* 直接遍历,然后进行交换
* @param num
* @return
*/
public int maximumSwap(int num) {
char[] chars = String.valueOf(num).toCharArray();
int maxValue = 0;
for (int i = 0; i < chars.length; i++){
for (int j = 0; j < chars.length; j++){
swap(chars, i , j);
maxValue = Math.max(maxValue, Integer.parseInt(new String(chars)));
swap(chars, i , j);
}
}
return maxValue;
}
private void swap(char[] chars, int i , int j){
char temp = chars[i];
chars[i] = chars[j];
chars[j] = temp;
}
/**
* 贪心
* @param num
* @return
*/
public int maximumSwap2(int num) {
char[] chars = String.valueOf(num).toCharArray();
int maxIndex = chars.length - 1;
int idx1 = -1, idx2 = -1;
for (int i = chars.length - 1; i >= 0; i--){
if (chars[i] > chars[maxIndex]){
maxIndex = i;
} else if (chars[i] < chars[maxIndex]){
idx1 = i;
idx2 = maxIndex;
}
}
if (idx1 >= 0){
swap(chars, idx1, idx2);
return Integer.parseInt(new String(chars));
}
return num;
}
}
相关推荐
Word论文插入带有方括号序号的参考文献——尾注+交叉引用
文章目录1. 尾注功能2. 为参考文献的序号添加方括号3. 调整参考文献前的序号大小4. 重复引用同一参考文献5. 将交叉引用的序号改为带有方括号的上标序号格式6. 删除参考文献前的尾注横线 1. 尾注功能 首先使用尾注功能顺序插入参考文献,暂时不考虑方括号问题,具体操作如下: ① 将光标放在需要插入参考文献角标的地方 ② 在word菜单栏,“引用-脚注部分右下角箭头”(用来设置尾注格式) ③如...
【力扣 leetcode】670:最大交换
力扣 leetcode:670 最大交换
当爬虫遇到TikTok滑块:一份给开发者的verifyV2避坑指南与调试心得
本文详细解析了TikTok滑块验证码verifyV2的破解与优化策略,涵盖验证码触发机制、滑块图片获取、验证请求构造及高级调试技巧。通过实战案例和代码示例,帮助开发者有效应对复杂反爬机制,提升验证通过率。特别针对verifyV2系统的加密算法和轨迹模拟提供了专业解决方案。
Leetcode 670:最大交换
题目描述 给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7。 示例 2 : 输入: 9973 输出: 9973 解释: 不需要交换。 注意: 给定数字的范围是[0, 108] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/...
中国30米逐年植被净初级生产力(NPP)数据集(1982年至今CASA模型)
1.3 气温、降水、地表太阳辐射数据 气温和降水数据月度空间插值数据是基于全国2400多个站点的日观测数据,在计算各气象要素月值的基础上,基于Anusplin软件插值生成的1982年以来各月度30米分辨率气温和降水栅格数据,插值过程中引入高程作为协变量。气温单位为℃,降水单位为mm。1.2 土地覆盖数据 土地覆盖数据来源于1985 年-2020年全球30米精细地表覆盖动态监测产品,该数据集包含29个地表覆盖类型,进行拼接、裁剪、重分类和重采样处理,获得8期250米分辨率的植被类型数据。
Ubuntu环境下rknn-toolkit2的安装与兼容性解析
本文详细解析了在Ubuntu系统上安装瑞芯微rknn-toolkit2工具链的完整流程与关键注意事项。文章重点剖析了rknn-toolkit2与旧版rknn-toolkit的核心兼容性问题,强调两者在API、模型格式及运行时库上互不兼容,并推荐使用Conda虚拟环境进行隔离管理,为RK3566、RK3588等开发板的AI模型部署提供清晰的实践指南。
Leetcode: 670. 最大交换
今天的每日一题有点难度,只能找与之类似的几道题进行练习,前路漫漫,也要保持每日一题。 看一下与之相似的两道题,Leetcode 的推荐能力还是可以的,同时,Leetcode 很多题目更侧重于对思维的考察。 题目: 侃侃: 找一个最大的数,我们都知道,一个数只要最高位的数字比较大,那么这个数就是很大的。 所以我们贪心的选数进行交换,只要找到最大的数放到最高位就可以啦。 但是,机会只有一次,如果最高位已经是最大的数字了,那么就不需要进行交换了,进而次高位如果也是最大的数字,都不用浪费机会.
校园网改造实录:手把手教你用华为MA5800 OLT调试全光网(附常用排错命令)
本文详细记录了校园全光网改造中华为MA5800 OLT的部署与调试过程,涵盖设备选型、基础配置、ONU批量部署及高频故障排查。通过实战案例和排错命令,帮助网络工程师快速掌握全光网调试技巧,实现低延迟、高稳定的网络性能。
LeetCode 670: 最大交换
class Solution { public: int maximumSwap(int num) { if(num<=10)return num;//若是<10,则直接弹出该值,无需操作; vector<int> res; while(num){res.push_back(num%...
以太网接口及POE设计
PoE标准 Power Over Ethernet 是有源以太网供电的简称 通过Cat-5电缆供电在IEEE 802.3af以太网供电标准中进行了定义。PoE标准以前限制在几瓦以内,但更新的PoE技术可实现更高的功率。例如,PoE+允许每端口功率高达25 W,而PoE++(四 对以太网供电系统)通过使用现有电缆的所有电线允许70 W到100 W的功率。与此PoE标准并行的是ADI公司定义的专有标准 LTPoE++™,该标准定义高达90W的受电设备(PD)功率规范(请参见表1)。 表1. ADI...
阿里云一键登录Java后端实战:5分钟搞定号码认证服务集成(附完整代码)
本文详细介绍了如何在Java后端项目中快速集成阿里云号码认证服务(PNVS),实现高效、安全的一键登录功能。文章从核心架构、安全机制解析入手,提供了完整的Maven依赖配置、服务端环境准备、核心业务逻辑实现(包括Token验证、用户处理、异常降级)以及生产环境下的性能优化、监控与部署方案,并附有可直接使用的完整代码示例。
解题思路-LeetCode第670题:最大交换
解题思路-LeetCode第670题:最大交换 题目描述: 给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7。 示例 2 : 输入: 9973 输出: 9973 解释: 不需要交换。 解题思路: 找两个交换位: 第一个是: 各位数从大到小排,第一个与原位置数不同的位置 第二个是: 与原位置数不同的位置中数值最大并且最靠后的位置 代码如下: 提交后,通过。 ...
16、Cortex-M7处理器:高性能与复杂架构解析
本文深入解析了Cortex-M7处理器的高性能架构与复杂设计,涵盖AHB总线矩阵优化、超标量六阶段双发射流水线、增强型分支预测单元及双精度浮点支持。重点介绍了其独特的内存层次结构,包括指令与数据TCM、片上缓存和AXI-M 64位总线接口,提升系统并行性与执行效率。通过实际测试对比M4与M7性能差异,并演示如何将代码与数据定位到TCM以实现零等待运行。同时阐述了缓存机制的工作原理及其对系统性能的影响,为开发者提供全面的性能优化指导。
LeetCode : 670. Maximum Swap 最大交换 交换数中两位使之最大
试题: Given a non-negative integer, you could swap two digits at most once to get the maximum valued number. Return the maximum valued number you could get. Example 1: Input: 2736 Output: 7236 Explanati...
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
leetcode-670:最大交换
又比如27734,在2的右边最大是7,那么要交换最后一个7才能保证最大,结果为77234。给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。比如2734, 在2的右边最大是7,因此交换结果7234。贪心:从头遍历,找到右侧一个比它大,且值最大的数。因此使用maxRight记录当前索引,右侧最大的数。
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
力扣解题思路:670. 最大交换/parseInt和valueOf的区别
670. 最大交换 思路: 看到这题我第一反应就是想到下一个排列,不过很快发现这两题并没办法使用同一种思路,因为这一题是要求最大,且只能交换一次,相当于多了很多别的限制。 初步的思路是,直接将数组排序,然后和原来的数组从左往右不断对比,如果一样就下一位,如果不一样则往数组后面找到这个最大数,然后交换位置,交换完就直接break即可: public int maximumSwap(int num) { if(num<10) return num; char[] a
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
[贪心]leetcode670:最大交换(medium)
题目: 题解: 贪心法 将数字转换为字符串,然后由前向后遍历,寻找比下标i数字大的最大的数字下标index,然后交换这两个下标所对应的数字就得到最后的结果了。 代码如下: class Solution { public: //思路:将数字转换为字符串,然后由前向后遍历,寻找比下标i数字大的最大的数字下标index,然后交换这两个下标所对应的数字就得到最后的结果了 int ...
LeetCode:670. 最大交换(Java 贪心)
此题是核心就是从左到右,找到 第一个其右侧数中的最大值比当前数大的位置,进行交换。
LeetCode打卡:670. 最大交换
给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7。 示例 2 : 输入: 9973 输出: 9973 解释: 不需要交换。 链接:https://leetcode.com/problems/maximum-swap/ 解题思路+代码如下:(略生硬) class Solution(object): def maximumSwap(self, num): """ :t
图解LeetCode——670. 最大交换(难度:中等)
如下图所示:将原数组与排序数组进行对比,发现第3个位置是不对的,应该是8,但是原数组却是3,所以我们将原数组的。元素中,最大值的下标index存入到相应的maxIndexs中。根据题意描述,我们要交换两个数,使其交换后得到最大值。的方式,从数组的尾部开始找8,当找到后,将8替换为3即可。,当与原数组对比的时候,我们可以采用对排序后的数组执行。,也就是说,每个元素在判断最大值的时候,都是。那么,根据这个规律,我们再来尝试解答本题。的值,如果发现不同了,那么互换的下标就是。那么,下一步,就是需要将原数组的。
LeetCode 670 最大交换
LeetCode 670 最大交换 解题思路
LeetCode-670:Maximum Swap (交换数字得最大整数)
题干: Given a non-negative integer, you could swap two digitsat mostonce to get the maximum valued number. Return the maximum valued number you could get. 给定一个正整数,最多交换两个数字一次得到一个最大的值。 Example 1: ...
LeetCode 最大交换(670题)两种方法图解
LeetCode 最大交换 @author:Jingdai @date:2020.12.25 题目描述(670题) 给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7。 思路及代码 方法1 排序 首先看一种好理解的方法,第一步将原数字按从大到小的顺序排序,也就是如果不规定交换次数所能达到的最大值。如图,比如题目中的 2736 排序后就得到了 sortedNums = 7632。然后我们对比排序后的数
LeetCode-670:Maximum Swap (交换数字得最大整数) -- medium
给定非空非负整数,最多交换其中的两个数字,得到最大的整数,返回最大整数
Leetcode刷题笔记题解(C++):670. 最大交换
假设数字 9923676。 从右边找最大的数字的下标maxindex,然后向左边寻找小于最大数字的数的下标,直到找到最左边,交换两者得出新的数字,比如从左到右递减的数字如9621则不需要变化,在寻找中记录这种数字。
9万+



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



