1095. Maximum Swap —— Weekly Challenge
2024-08-25 15:54:32
题目限定输入是[0, 10^8],因而不用考虑负数或者越界情况,算是减小了难度。
public class Solution {
/**
* @param num: a non-negative intege
* @return: the maximum valued number
*/
public int maximumSwap(int num) {
// Write your code here
char[] numArrays = String.valueOf(num).toCharArray();
if (numArrays.length < 2) {
return num;
} //第一个递增点:
int firstHeigerPoint = 0;
for (int i = 0; i < numArrays.length - 1; i++) {
if (numArrays[i] < numArrays[i + 1]) {
firstHeigerPoint = i + 1;
break;
}
} if (firstHeigerPoint == 0) {
return num;
} //找到递增点后的最大值(如有相等情况取低位,因而更新条件是numArrays[j] >= max)
int max = numArrays[firstHeigerPoint];
int maxPoint = firstHeigerPoint;
for (int j = firstHeigerPoint; j < numArrays.length; j++) {
if (numArrays[j] >= max) {
max = numArrays[j];
maxPoint = j;
}
} //找到第一个更小的高位
int toSwapIndex = firstHeigerPoint-1;
for (int i = 0; i <= firstHeigerPoint - 1; i++) {
if (numArrays[i] < max) {
toSwapIndex = i;
break;
}
} char temp = numArrays[toSwapIndex];
numArrays[toSwapIndex] = numArrays[maxPoint];
numArrays[maxPoint] = temp; return Integer.parseInt(new String(numArrays));
}
}
最新文章
- 开发android App干坏事(一)
- bootstrap的基本模板
- JavaScript中,格式化DateTime
- 本周PSP+历年作品评论
- Gdata XML解析配置和简单使用
- 关于cornerstone无法上传library文件的问题
- 图论(网络流,二分图最小点权覆盖):POJ 2125 Destroying The Graph
- 论山寨手机与Android 【14】3G SmartPhone时代的MTK
- background-position 具体的使用说明
- 宿主机跟Vmware中的linux使用host-only,bridge 方式通信
- Android应用测试性能的工具Emmagee,导出文件格式问题分析
- RHive
- JAVA基础——面向对象三大特性:封装、继承、多态
- HTML配色工具!在线配色工具
- 从零开始搭建vue开发环境及构建vue项目
- synchronized 关键字解析
- [原]Jenkins(一)---我理解的jenkins是这样的(附全套PDF下载)
- ABAP 省市县级联搜索帮助
- linux中的软、硬链接
- 标准IO与文件IO 的区别【转】
热门文章
- 为啥final类型的map或者arraylist可以修改数据 而final类型的String变量不可以修改数据呢
- 4.4.4 无锁的对象引用:AtomicReference和AtomicStampedReference
- thinkphp+memcache缓存例子
- WebService搭建
- Alpha冲刺(九)
- 深入理解java虚拟机(十三) Java 即时编译器JIT机制以及编译优化
- python字符串字典列表互转
- opencv—读取一张图片并滤波
- 在Android模拟器里安装apk
- [示例] Drag And Drop for FireMonkey (Win &; macOS)