【leetcode.179】最大数
最大数
一、要求
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。
示例 1:
输入:[10,2]
输出:210
示例 2:
输入:[3,30,34,5,9]
输出:9534330
说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。
二、思路
如果num数组为[1,17],那么由于117<171,那么我们希望[1,17]的顺序变为[17,1]。由于int型数组没有自定义排序的功能,而结果又需要转化为字符串,字符串有自定义的排序,那么我们首先将原数组转化为字符串数组。
接着我们采用外部排序接口Comparator,对conpare方法传入(a:1,b:17),返回(b+a).compareTo(a+b),即“171”.compareTo("117"),结果为1,因此排序底层会调换两个位置,变为(17,1).待排序完成后,拼接遍历到的字符串并返回即可。
三、代码实现
public String largestNumber(int[] nums) {String[] strArr = new String[nums.length];for (int i = 0; i < nums.length; i++) {strArr[i] = String.valueOf(nums[i]);}Arrays.sort(strArr, new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {return (o2 + o1).compareTo(o1 + o2);}});StringBuilder sb = new StringBuilder();//防止测试用例中出现了[0,0,0]的情况,按道理应该返回"0"if (strArr[0].equals("0")) {return "0";}for (String temp : strArr) {sb.append(temp);}return sb.toString();}
【leetcode.179】最大数相关推荐
- leetcode 179.最大数
leetcode 179.最大数 题干 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数. 注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数. 示例 ...
- LeetCode 179. 最大数(自定义谓词函数--Lambda表达式--排序)
1. 题目 给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说明: ...
- leetcode 179. 最大数
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说明: 输出结果 ...
- Leetcode 179. 最大数 解题思路及C++实现
解题思路: 使用C++中的优先队列priority_queue,通过自定义比较函数cmp,来对nums数组进行排序.最后按排序结果,顺序将nums中的数push_back进字符串res中,即得到结果. ...
- leetcode 179. 最大数(排序)
给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数. 注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数. 示例 1: 输入:nums = [10,2] ...
- leetcode 179 最大数
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说明: 输出结果 ...
- 【LeetCode】179. 最大数
文章目录 题目[179. 最大数](https://leetcode-cn.com/problems/largest-number/) 解题思路 注意: 步骤: 代码 题目179. 最大数 给定一组非 ...
- 179. 最大数 golang (自定义sort)
179. 最大数 给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 ...
- [LeetCode]179. Largest Number
[LeetCode]179. Largest Number 题目描述 解题思路 求最大的数,在数组中对于每一位数字数值越大应当越靠前,如:9 > 5,所以9应该在5之前 需要考虑的是对于不同位数 ...
- 179. 最大数 largestNumber
>179. 最大数< >largestNumber< 一.解题思路 1.解法一( Java ) 解法思路:字典序+比较器 首先将 nums 中的数转换成 String 类型,然 ...
最新文章
- php protected 属性,PHP实现在对象之外访问其私有属性private及保护属性protected的方法...
- ×××的各种协议介绍
- 《淘宝网开店 拍摄 修图 设计 装修 实战150招》一一1.2 选购镜头时应注意的事项...
- 高性能开发,别点,发际线要紧!
- 豆瓣镜像源的使用与pip包版本控制
- angularjs ui-router
- 用两种方法求解九宫算问题
- QTP10.0下载及安装说明
- modelsim编译c语言,Modelsim协同SystemC仿真
- 如何查看本机IP地址?
- SWMM与Python的那些事 (一)
- 【亚马逊广告策略】探索自动投放和手动投放的选择并做到广告一致性你都懂吗?
- Android 布局优化方案
- Matlab入门:实现简单的数据剔除
- 戾气遍地的社会,我们该如何远离垃圾人?(深度)
- Excel应用:去除重复项,进行个数计算。
- 使用 Vue3 + elementPlus 做一个每日习惯打卡表
- 新一代数据中心光纤布线技术发展趋势
- 激光打印机工作原理1
- 小米盒子 android 动画特效,电视超人app下载