最大交换 Maximum Swap
2018-07-28 16:52:20
问题描述:

问题求解:
使用bucket数组来记录每个数最后出现的位置,然后从左向右遍历一遍即可。
public int maximumSwap(int num) {
char[] digits = String.valueOf(num).toCharArray();
int[] bucket = new int[10];
for (int i = 0; i < digits.length; i++) bucket[digits[i] - '0'] = i;
for (int i = 0; i < digits.length; i++) {
for (int k = 9; k > digits[i] - '0'; k--) {
if (bucket[k] > i) {
char tmp = digits[i];
digits[i] = digits[bucket[k]];
digits[bucket[k]] = tmp;
return Integer.valueOf(new String(digits));
}
}
}
return num;
}
最大交换 Maximum Swap的更多相关文章
- [Swift]LeetCode670. 最大交换 | Maximum Swap
Given a non-negative integer, you could swap two digits at most once to get the maximum valued numbe ...
- 如何在Linux上使用文件作为内存交换区(Swap Area)
交换区域(Swap Area)有什么作用? 交换分区是操作系统在内存不足(或内存较低)时的一种补充.通俗的说,如果说内存是汽油,内存条就相当于油箱,交换区域则相当于备用油箱. Ubuntu Linux ...
- 如何增加Ubuntu交换空间swap
如何增加Ubuntu交换空间swap 1 使用命令查看系统内swap分区大小 green@green:~$ free -m total used free shared buff/cache ava ...
- Linux 交换分区swap
Linux 交换分区swap 一.创建和启用swap交换区 如果你的服务器的总是报告内存不足,并且时常因为内存不足而引发服务被强制kill的话,在不增加物理内存的情况下,启用swap交换区作为虚拟内存 ...
- LC 670. Maximum Swap
Given a non-negative integer, you could swap two digits at most once to get the maximum valued numbe ...
- Linux_交换分区SWAP
一.交换分区SWAP 1️⃣:交换分区SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用. 2️⃣:交换分区一般指定虚拟内存的大小 ...
- 670. Maximum Swap 允许交换一个数 求最大值
[抄题]: Given a non-negative integer, you could swap two digits at most once to get the maximum valued ...
- [LeetCode] Maximum Swap 最大置换
Given a non-negative integer, you could swap two digits at most once to get the maximum valued numbe ...
- Maximum Swap LT670
Given a non-negative integer, you could swap two digits at most once to get the maximum valued numbe ...
随机推荐
- 80. Remove Duplicates from Sorted Array II(双指针)
Given a sorted array nums, remove the duplicates in-place such that duplicates appeared at most twic ...
- poj2932 Coneology
地址:http://poj.org/problem?id=2932 题目: Coneology Time Limit: 5000MS Memory Limit: 65536K Total Subm ...
- Storm集成Siddhi
<Siddhi初探>中我们介绍了Siddhi的基本使用方法,并表示我们将把Siddhi集成到Storm中作为流任务处理引擎.本文将用<Storm初探>中的例子讲解如何集成Sid ...
- SpringMVC 拦截器实现原理和登录实现
SpringMVC 拦截器的原理图 springMVC拦截器的实现一般有两种方式 第一种方式是要定义的Interceptor类要实现了Spring的HandlerInterceptor 接口 第二种方 ...
- Linux基础命令---chgrp
chgrp 改变文件或者目录所属的群组,使用参数“--reference”,可以改变文件的群组为指定的关联文件群组. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.o ...
- 防DNS劫持教程,手动修复本地DNS教程
防DNS劫持教程,手动修复本地DNS教程 该如何避免DNS劫持的问题呢?1. 请不要轻易连接陌生网络.2. 可以通过手动指定DNS(DNS用于将域名正确转换为您想访问的网站的作用),修改后你的网络应用 ...
- javascript闭包(Module模式)的用途和高级使用方式
javascript闭包(Module模式)的用途和高级使用方式 javascript闭包的用途:1. 匿名自执行函数:或者可以理解为,避免污染全局变量2. 缓存:源于闭包的核心特性便是保存状态,应用 ...
- P1661 扩散
P1661 扩散 二分+最小生成树(kruskal使用并查集) 不清楚的题意导致我被坑了qwq,其实间接联通也是允许的.所以可以使用并查集+最小生成树维护 每次二分答案,然后跑一遍最小生成树判断是否联 ...
- c++的各种类型转换方式
const_cast 用于去掉const属性,把const类型的指针变为非const类型的指针,如:const int *fun(int x,int y){} int *ptr=const_cast& ...
- PHP微信公众号后台开发(Yii2实现)
本文内容较多,包括微信接入.获取微信用户信息.微信支付.JSSDK配置参数获取等部分.如果读者对微信开发没有一个主观上的认识,那么建议读者先研读微信公众平台开发者文档,然后再阅读本文,效果更佳!另外本 ...