2023-01-01

最大数

  • 题目:

    image
  • 题解:最大数就是将最大的组成放在前面,如示例2里面的3和30比较,330和303,就是330更大,所以元素3在30之前,将数字数组中的对应元素转为字符串数组中,然后用compareTo()方法进行比较,它是从头开始比较字符串对应的AscII码值,如果第一个字符相等,就比较后面一个,然后我们用快速排序方法Arrays.sort()lambda表达式方式,具体的Arrays.sort()中的lambda表达式讲解

  • 代码:

     public String largestNumber(int []nums){
     int n = nums.length;
     String[] array = new String[n];
     for(int i=0;i<n;i++){
     array[i] = String.valueOf(nums[i]);
     }
     //a.concat(b)方法是将两个字符串拼接在一起
     Arrays.sort(array,(a,b)->b.concat(a).compareTo(a.concat(b)));
     //如果第一个元素就是0;那么后面的都比零小,所以直接返回0
     if(array[0].equals("0")){
     return "0";
     }
     StringBuilder sb = new StringBuilder();
     for(int i=0;i<n;i++){
     sb.append(array[i]);
     }
     return sb.toString();
     }
    }
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容