leetcode中等2165重排数字的最小值
Posted qq_40707462
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode中等2165重排数字的最小值相关的知识,希望对你有一定的参考价值。
给你一个整数 num 。重排 num 中的各位数字,使其值 最小化 且不含 任何 前导零。
返回不含前导零且值最小的重排数字。
注意,重排各位数字后,num 的符号不会改变。
示例 1:
输入:num = 310
输出:103
解释:310 中各位数字的可行排列有:013、031、103、130、301、310 。
不含任何前导零且值最小的重排数字是 103 。
示例 2:
输入:num = -7605
输出:-7650
解释:-7605 中各位数字的部分可行排列为:-7650、-6705、-5076、-0567。
不含任何前导零且值最小的重排数字是 -7650 。
思路:转为string,各种api
class Solution
public long smallestNumber(long num)
if(num==0) return 0;
char[]arr=String.valueOf(num).toCharArray();
Arrays.sort(arr);
if(num<0)
StringBuilder sb=new StringBuilder
(String.valueOf(arr,1,arr.length-1)).reverse();
return Long.parseLong(sb.toString())*(-1);
String s=new String(arr);
int i=s.lastIndexOf("0");
if(i==-1) return Long.parseLong(s);
return Long.parseLong
(s.substring(i+1,i+2)+s.substring(0,i+1)+s.substring(i+2));
以上是关于leetcode中等2165重排数字的最小值的主要内容,如果未能解决你的问题,请参考以下文章
leetcode 155. Min Stack最小栈(中等)
⭐算法入门⭐《堆》中等03 —— LeetCode 373. 查找和最小的K对数字