leetcode_最大数
解题思路:
(1)既然题中已经明确给了说数字很大要转换成字符串,所以先把这个数值型数组转换为字符串集合
(2)对这个集合中的元素进行排序
(3)对排好序的字符串元素进行拼接
import java.util.*; public class Solution { /** * 最大数 * @param nums int整型一维数组 * @return string字符串 */ public String solve (int[] nums) { //首先把整型数字变成字符串的形式 ArrayList<String> list = new ArrayList<>(); for(int i=0;i<nums.length;i++){ list.add(String.valueOf(nums[i])); } //对字符串按照某种规则进行排序 Collections.sort(list,new Comparator<String>(){ @Override public int compare(String a,String b){ return (b+a).compareTo(a+b); } }); if(list.get(0).equals("0")) return "0"; //这个时候将list中的字符串拼接起来就可以了 StringBuilder sb = new StringBuilder(); for(String s:list){ sb.append(s); } return sb.toString(); } }
这里用到了集合排序,覆写compare方法。排序的时候用到了字符串的比较方法。
各自努力,不问归期