最大数

一、要求

给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。

示例 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】最大数相关推荐

  1. leetcode 179.最大数

    leetcode 179.最大数 题干 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数. 注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数. 示例 ...

  2. LeetCode 179. 最大数(自定义谓词函数--Lambda表达式--排序)

    1. 题目 给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说明: ...

  3. leetcode 179. 最大数

    给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说明: 输出结果 ...

  4. Leetcode 179. 最大数 解题思路及C++实现

    解题思路: 使用C++中的优先队列priority_queue,通过自定义比较函数cmp,来对nums数组进行排序.最后按排序结果,顺序将nums中的数push_back进字符串res中,即得到结果. ...

  5. leetcode 179. 最大数(排序)

    给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数. 注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数. 示例 1: 输入:nums = [10,2] ...

  6. leetcode 179 最大数

    给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说明: 输出结果 ...

  7. 【LeetCode】179. 最大数

    文章目录 题目[179. 最大数](https://leetcode-cn.com/problems/largest-number/) 解题思路 注意: 步骤: 代码 题目179. 最大数 给定一组非 ...

  8. 179. 最大数 golang (自定义sort)

    179. 最大数 给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 ...

  9. [LeetCode]179. Largest Number

    [LeetCode]179. Largest Number 题目描述 解题思路 求最大的数,在数组中对于每一位数字数值越大应当越靠前,如:9 > 5,所以9应该在5之前 需要考虑的是对于不同位数 ...

  10. 179. 最大数 largestNumber

    >179. 最大数< >largestNumber< 一.解题思路 1.解法一( Java ) 解法思路:字典序+比较器 首先将 nums 中的数转换成 String 类型,然 ...

最新文章

  1. php protected 属性,PHP实现在对象之外访问其私有属性private及保护属性protected的方法...
  2. ×××的各种协议介绍
  3. 《淘宝网开店 拍摄 修图 设计 装修 实战150招》一一1.2 选购镜头时应注意的事项...
  4. 高性能开发,别点,发际线要紧!
  5. 豆瓣镜像源的使用与pip包版本控制
  6. angularjs ui-router
  7. 用两种方法求解九宫算问题
  8. QTP10.0下载及安装说明
  9. modelsim编译c语言,Modelsim协同SystemC仿真
  10. 如何查看本机IP地址?
  11. SWMM与Python的那些事 (一)
  12. 【亚马逊广告策略】探索自动投放和手动投放的选择并做到广告一致性你都懂吗?
  13. Android 布局优化方案
  14. Matlab入门:实现简单的数据剔除
  15. 戾气遍地的社会,我们该如何远离垃圾人?(深度)
  16. Excel应用:去除重复项,进行个数计算。
  17. 使用 Vue3 + elementPlus 做一个每日习惯打卡表
  18. 新一代数据中心光纤布线技术发展趋势
  19. 激光打印机工作原理1
  20. 小米盒子 android 动画特效,电视超人app下载

热门文章

  1. 家谱二叉树c语言程序,家谱图-二叉树
  2. 西门子服务器装系统,wincc 7.0安装操作系统
  3. HyperLPR车牌识别技术算法之车牌粗定位与训练
  4. 一个项目的大体架构及想法。
  5. 多走走弯路,才不会有被剧透的乏味
  6. 编程小知识之时间显示
  7. 大数据分析01——成都二手房(平均价格)
  8. Latex中表格过长如何实现跨页表格——跨页表格宏包longtable的使用?
  9. 蒟蒻的单调队列orz,真的蒻
  10. 2018互联网寒冬之裁员浪潮--感同深受(winter is here)