博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
刷题笔记(19)--把数组排成最小的数
阅读量:3958 次
发布时间:2019-05-24

本文共 818 字,大约阅读时间需要 2 分钟。

在这里插入图片描述

  • 根据整形数组生成字符串数组
  • 对字符串数组使用内置函数 sort(排序数组,比较器) 进行排序,排序规则是如果 s1+ s2 的字典序大于 s2 + s1,说明 s1要放在 s2 后面,反之。
  • compareTo 结果大于0,说明要排序,将两个参数交换位置。
  • 最后拼接排序后的字符数组返回字符串即可
class Solution {
public String minNumber(int[] nums) {
String[] strs = new String[nums.length]; for (int i = 0; i < nums.length; i++) // valueOf 返回 int 参数的字符串表示形式 strs[i] = String.valueOf(nums[i]); /* sort 的第二参数是比较器。 compareTo 如果参数字符串等于此字符串,则值为0 ; 如果此字符串按字典顺序小于字符串参数,则为小于0的值; 如果此字符串按字典顺序大于字符串参数,则为大于0的值。 (x, y) 为传入的参数,这里指的是两个相邻字符串 */ Arrays.sort(strs, (x, y) -> {
return (x + y).compareTo(y + x); }); StringBuilder res = new StringBuilder(); for (String s : strs) res.append(s); return res.toString(); }}

转载地址:http://jpozi.baihongyu.com/

你可能感兴趣的文章
杭电ACM——1297,Children’s Queue(递推)
查看>>
杭电ACM——1003,Max Sum(DP)
查看>>
杭电ACM——1042,N!(思维)
查看>>
杭电ACM——1060,Leftmost Digit(思维)
查看>>
杭电ACM——1061,Rightmost Digit(思维)
查看>>
杭电ACM——1087,Super Jumping! Jumping! Jumping!(DP)
查看>>
杭电ACM——fatmouse's speed(DP)
查看>>
杭电ACM——毛毛虫(DP)
查看>>
杭电ACM——humble numbers(DP)
查看>>
杭电ACM——6467,简单数学题(思维)
查看>>
杭电ACM——天上掉馅饼(DP)
查看>>
杭电ACM——1086,You can Solve a Geometry Problem too(思维)
查看>>
杭电ACM——2057,A + B Again(思维)
查看>>
codeforces——1097B,Petr and a Combination Lock(搜索)
查看>>
杭电ACM——2064,汉诺塔III(递推)
查看>>
杭电ACM——2065,"红色病毒"问题(思维)
查看>>
北大ACM——2385,Apple Catching(DP)
查看>>
杭电AM——2072,单词数(暴力)
查看>>
杭电ACM——2073,无限的路(思维)
查看>>
杭电ACM——2069,Coin Change(DP)
查看>>