摘要:先將轉(zhuǎn)化為,否則無(wú)法使用,其實(shí)轉(zhuǎn)為也可以,這里用為例。然后就是最關(guān)鍵的一步創(chuàng)造一個(gè),用以從大到小排列所有的元素。注意這里的順序不能變。再將排列好的元素放入一個(gè)里,然后將轉(zhuǎn)化為。
Problem
Given a list of non negative integers, arrange them such that they form the largest number.
ExampleGiven [1, 20, 23, 4, 8], the largest formed number is 8423201.
Note先將nums[]轉(zhuǎn)化為String[],否則無(wú)法使用Comparator,其實(shí)轉(zhuǎn)為Integer[]也可以,這里用String為例。
然后就是最關(guān)鍵的一步:創(chuàng)造一個(gè)Comparator,用以從大到小排列所有的strs[]元素。注意:return (s2+s1).compareTo(s1+s2); 這里的順序不能變。
再將排列好的str[i]元素放入一個(gè)StringBuilder sb里,然后將sb轉(zhuǎn)化為String result。
如果這個(gè)result的第一個(gè)字符是0,那么我們不希望看到返回一個(gè)類似“000000000”的字符串,只要返回單字符的字符串"0"就可以了。
否則,返回result。
public class Solution { public String largestNumber(int[] nums) { String[] strs = new String[nums.length]; for (int i = 0; i < nums.length; i++) { strs[i] = Integer.toString(nums[i]); } Arrays.sort(strs, new Comparator(){ public int compare(String s1, String s2) { return (s2 + s1).compareTo(s1 + s2); } }); StringBuilder sb = new StringBuilder(); for (int i = 0; i < strs.length; i++) { sb.append(strs[i]); } String result = sb.toString(); if (result.charAt(0) == "0") return "0"; return result; } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/65658.html
摘要:建立兩個(gè)堆,一個(gè)堆就是本身,也就是一個(gè)最小堆另一個(gè)要寫(xiě)一個(gè),使之成為一個(gè)最大堆。我們把遍歷過(guò)的數(shù)組元素對(duì)半分到兩個(gè)堆里,更大的數(shù)放在最小堆,較小的數(shù)放在最大堆。同時(shí),確保最大堆的比最小堆大,才能從最大堆的頂端返回。 Problem Numbers keep coming, return the median of numbers at every time a new number a...
摘要:這是一道簡(jiǎn)單的動(dòng)規(guī)題目,同步更新數(shù)組解決了為負(fù)數(shù)的問(wèn)題。即使是求最小乘積子序列,也可以通過(guò)取和的最小值獲得。 Problem Find the contiguous subarray within an array (containing at least one number) which has the largest product. Example For example, g...
摘要:類似這種需要遍歷矩陣或數(shù)組來(lái)判斷,或者計(jì)算最優(yōu)解最短步數(shù),最大距離,的題目,都可以使用遞歸。 Problem Given a 2D binary matrix filled with 0s and 1s, find the largest square containing all 1s and return its area. Example For example, given t...
摘要:遞歸左右子樹(shù),若左右子樹(shù)都有解,那么返回根節(jié)點(diǎn)若僅左子樹(shù)有解,返回左子樹(shù)若僅右子樹(shù)有解,返回右子樹(shù)若都無(wú)解,返回。對(duì)于而言,更為簡(jiǎn)單公共祖先一定是大于等于其中一個(gè)結(jié)點(diǎn),小于等于另一個(gè)結(jié)點(diǎn)。 Problem Given the root and two nodes in a Binary Tree. Find the lowest common ancestor(LCA) of the ...
摘要:拼接比較法復(fù)雜度時(shí)間空間思路要拼成最大數(shù),我們只要讓較大的數(shù)排在前面,較小的數(shù)排在后面就行。注意如果排序后第一個(gè)數(shù)是,則直接返回,因?yàn)楹竺娴臄?shù)只有可能是了。 Largest Number Given a list of non negative integers, arrange them such that they form the largest number. For exa...
閱讀 1697·2021-11-22 14:45
閱讀 1203·2021-11-17 09:33
閱讀 3401·2021-09-02 09:48
閱讀 1059·2019-08-30 15:54
閱讀 2816·2019-08-30 15:53
閱讀 2620·2019-08-30 12:54
閱讀 2308·2019-08-29 12:37
閱讀 2477·2019-08-26 13:58