日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode:Largest Number - 求整型数组中各元素可拼合成的最大数字

發布時間:2023/12/4 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode:Largest Number - 求整型数组中各元素可拼合成的最大数字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

1、題目名稱

Largest Number(求整型數組中各元素可拼合成的最大數字)

2、題目地址

https://leetcode.com/problems/largest-number/

3、題目內容

英文:Given a list of non negative integers, arrange them such that they form the largest number.

中文:給出一組非負整數,求這些非負整數可以拼接出的最大數字

說明:例如,給出數組 [3, 30, 34, 5, 9],拼接出的最大數字為9534330

4、解題方法

由于本題輸入是一個整型數組,輸出是一個字符串,因此在輸出前,可以考慮對數組進行一下排序。

下面是一段WA(Wrong Answer)的Java代碼,先將數組轉換成一個字符串數組,再按照字符串的大小進行排序

import java.util.Arrays; import java.util.Collections;/*** 功能說明:LeetCode 179 - Largest Number* 開發人員:Tsybius2014* 開發時間:2015年8月8日*/ public class Solution {/*** 最大的數字* @param nums 數組* @return*/public String largestNumber(int[] nums) {String[] array = new String[nums.length];for (int i = 0; i < nums.length; i++) {array[i] = String.valueOf(nums[i]);}Arrays.sort(array, Collections.reverseOrder());return String.join("", array);} }

這個排序方法并不能按照題目要求正確排序。例如,數字8和883,如果按照字符串順序排序,883大于8,就會把883放在前面,8放在后面,最后輸出8838。而實際8883才是正確結果。正確的排序方法,是使用排序方法進行比較時,比較兩個字符串(設為A和B),以先后順序拼接而成的兩個字符串A+B和B+A,如果A+B更大,則A在前B在后,否則A在后B在前。

一段可以AC(Accept)的Java代碼如下:

/*** 功能說明:LeetCode 179 - Largest Number* 開發人員:Tsybius2014* 開發時間:2015年8月8日*/ public class Solution {/*** 最大的數字* @param nums 數組* @return*/public String largestNumber(int[] nums) {String[] array = new String[nums.length];for (int i = 0; i < nums.length; i++) {array[i] = String.valueOf(nums[i]);}String temp;for (int i = 0; i < array.length; i++) {for (int j = i + 1; j < array.length; j++) {if ((array[i] + array[j]).compareTo(array[j] + array[i]) < 0) {temp = array[i];array[i] = array[j];array[j] =temp;}}}if (array[0].equals("0")) {return "0";} else {return String.join("", array);}} }

END

轉載于:https://my.oschina.net/Tsybius2014/blog/489530

總結

以上是生活随笔為你收集整理的LeetCode:Largest Number - 求整型数组中各元素可拼合成的最大数字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。