美文网首页
179. 最大数

179. 最大数

作者: 周英杰Anita | 来源:发表于2020-01-08 14:30 被阅读0次

题目描述:

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

示例 1:

输入: [10,2]
输出: 210

示例 2:

输入: [3,30,34,5,9]
输出: 9534330

说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。

思路:

image.png

Java解法:

class Solution {
    private class LargerNumberComparator implements Comparator<String>{
        @Override
        public int compare(String a, String b){
            String order1 = a + b;
            String order2 = b + a;
            return order2.compareTo(order1);
        }
    }
    public String largestNumber(int[] nums) {
        int len = nums.length;
        String[] asStrs = new String[len];
        for(int i = 0; i < len; i++){
            asStrs[i] = String.valueOf(nums[i]);
        }
        Arrays.sort(asStrs, new LargerNumberComparator());
        if (asStrs[0].equals("0")) {
            return "0";
        }
        String largestNumberStr = new String();
        for(String numAsStr : asStrs){
            largestNumberStr += numAsStr;
        }
        return largestNumberStr;
    }
}

String.valueOf()方法的使用

一、由基本数据型态转换成String

String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 ,也就是** String.valueOf() **这个参数多载的方法

有以下几种

(1)String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串
(2)String.valueOf(char c) : 将 char 变量 c 转换成字符串
(3)String.valueOf(char[] data) : 将 char 数组 data 转换成字符串
(4)String.valueOf(char[] data, int offset, int count) : 将 char 数组 data 中 由 data[offset] 开始取 count 个元素 转换成字符串

(5)String.valueOf(double d) : 将 double 变量 d 转换成字符串
(6)String.valueOf(float f) : 将 float 变量 f 转换成字符串
(7)String.valueOf(int i) : 将 int 变量 i 转换成字符串
(8)String.valueOf(long l) : 将 long 变量 l 转换成字符串
(9)String.valueOf(Object obj) : 将 obj 对象转换成 字符串, 等于 obj.toString()

**  用法如下: **
  int i = 10;
  String str = String.valueOf(i);
  这时候 str 就会是 "10"

java中的compareto方法

1.返回参与比较的前后两个字符串的asc码的差值,如果两个字符串首字母不同,则该方法返回首字母的asc码的差值

String a1 = "a";
String a2 = "c";
System.out.println(a1.compareTo(a2));//结果为-2

2.即参与比较的两个字符串如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值,

String a1 = "aa";
String a2 = "ad";
System.out.println(a1.compareTo(a2));//结果为-3
3.如果两个字符串不一样长,可以参与比较的字符又完全一样,则返回两个字符串的长度差值

String a1 = "aa";
String a2 = "aa12345678";
System.out.println(a1.compareTo(a2));//结果为-8
4.返回为正数表示a1>a2, 返回为负数表示a1<a2, 返回为0表示a1==a2;

5.数字类型不能用compareTo,nt跟int的比较不能用compareTo方法,直接用大于(>) 小于(<) 或者 等于(==) 不等于(!=)来比较即可

int num1 = 4;
int num2 = 5;
num1.compareTo(num2);//Cannot invoke compareTo(int) on the primitive type int
你可以先把你的int型变量转换成String再进行比较

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/largest-number/solution/zui-da-shu-by-leetcode/

相关文章

  • LeetCode-179-最大数

    LeetCode-179-最大数 179. 最大数[https://leetcode-cn.com/problem...

  • 179. 最大数

    题目描述: 给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。 示例 1: 示例 2: 说明: 输出结果...

  • 179. 最大数(中等)

    给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意:输出结果可能非常...

  • 179. Largest Number [Medium] 字符串

    179. Largest Number 主要考的自定义函数?

  • -.179.

    终于在磨了一周之后完成了,开始对细节部分是有抵触情绪的,不想去刻画触碰,因为静不下心,很明白这个需要完全进入状态才...

  • Mysql 单表适合的最大数据量是多少?如何优化其性能?

    Mysql 单表适合的最大数据量是多少? 我们说 Mysql 单表适合存储的最大数据量,自然不是说能够存储的最大数...

  • 179.洁面乳

    告别

  • 179.威胁

    我和儿子的对抗,我和他之间的这种你不让我,我也不让你。今天深深感受到我的内心誓死要和他抗争到底。而且我一定要争一个...

  • 计算行数或页数的万能公式

    知道总数,知道每行的最大个数,求一共有多少行 行数 = (总个数 + 每行的最大数 - 1)/ 每行的最大数

  • 汇编at&t

    比较得到数组最大数 写一个比较得到最大数的汇编, 注意: long是4字节 movl, mov运用在不同范围的数字...

网友评论

      本文标题:179. 最大数

      本文链接:https://www.haomeiwen.com/subject/lanjactx.html