博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode-670-Maximum Swap]
阅读量:6347 次
发布时间:2019-06-22

本文共 1263 字,大约阅读时间需要 4 分钟。

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: 2736Output: 7236Explanation: Swap the number 2 and the number 7.

 

Example 2:

Input: 9973Output: 9973Explanation: No swap.

 

Note:

  1. The given number is in the range [0, 108]

思路:

暴力枚举所有交换可能,竟然没有超时。。。感觉因为输入最多到108

最多8位,复杂度O(n3)虽然很高,但数据规模小,但总之不是什么好办法。

vector
digits(int num){ if (num == 0)return{
0}; vector
ret; while (num > 0) { ret.push_back(num % 10); num /= 10; } reverse(ret.begin(), ret.end()); return ret;}int toNum(vector
num){ int r = 0; for (int i = 0; i < num.size();i++) { r *= 10; r += num[i]; } return r;}int maximumSwap(int n){ vector
num = digits(n); int m = n; for (int i = 0; i < num.size();i++) { for (int j = i + 1; j < num.size();j++) { swap(num[i], num[j]); m = max(m, toNum(num)); swap(num[i], num[j]); } } return m;}

 

 

 

 

 

转载于:https://www.cnblogs.com/hellowooorld/p/7469326.html

你可能感兴趣的文章
MyCat分片算法学习(纯转)
查看>>
IO Foundation 3 -文件解析器 FileParser
查看>>
linux学习经验之谈
查看>>
mysqld_multi实现多主一从复制
查看>>
中介模式
查看>>
JS中将变量转为字符串
查看>>
servlet笔记
查看>>
JVM(五)垃圾回收器的前世今生
查看>>
CentOS 7 下安装 Nginx
查看>>
Spring Boot 自动配置之@EnableAutoConfiguration
查看>>
web前端笔记
查看>>
import 路径
查看>>
使用optimizely做A/B测试
查看>>
finally知识讲解
查看>>
Matplotlib绘图与可视化
查看>>
openstack ocata版(脚本)控制节点安装
查看>>
【微信公众号开发】获取并保存access_token、jsapi_ticket票据(可用于微信分享、语音识别等等)...
查看>>
在开发中处理海量数据的方法 思路
查看>>
datatable 获取最大值
查看>>
sqlserver2012一直显示正在还原(Restoring)和从单用户转换成多用户模式(单用户连接中)...
查看>>