最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go&java算法之最大數(shù)示例詳解

 更新時(shí)間:2022年08月16日 11:20:25   作者:黃丫丫  
這篇文章主要為大家介紹了Go&java算法之最大數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

最大數(shù)

給定一組非負(fù)整數(shù) nums,重新排列每個(gè)數(shù)的順序(每個(gè)數(shù)不可拆分)使之組成一個(gè)最大的整數(shù)。

注意:輸出結(jié)果可能非常大,所以你需要返回一個(gè)字符串而不是整數(shù)。

  • 示例 1:

輸入:nums = [10,2]

輸出:"210"

  • 示例 2:

輸入:nums = [3,30,34,5,9]

輸出:"9534330"  

提示:

1 <= nums.length <= 100

0 <= nums[i] <= 109

方法一:排序(java)

要想組成最大的整數(shù),一種直觀的想法是把數(shù)值大的數(shù)放在高位。

于是我們可以比較輸入數(shù)組的每個(gè)元素的最高位,最高位相同的時(shí)候比較次高位

以此類推,完成排序,然后把它們拼接起來。這種排序方式對(duì)于輸入數(shù)組 沒有相同數(shù)字開頭 的時(shí)候是有效的

class Solution {
    public String largestNumber(int[] nums) {
        int n = nums.length;
        // 轉(zhuǎn)換成包裝類型,以便傳入 Comparator 對(duì)象(此處為 lambda 表達(dá)式)
        Integer[] numsArr = new Integer[n];
        for (int i = 0; i &lt; n; i++) {
            numsArr[i] = nums[i];
        }
        Arrays.sort(numsArr, (x, y) -&gt; {
            long sx = 10, sy = 10;
            while (sx &lt;= x) {
                sx *= 10;
            }
            while (sy &lt;= y) {
                sy *= 10;
            }
            return (int) (-sy * x - y + sx * y + x);
        });
        if (numsArr[0] == 0) {
            return "0";
        }
        StringBuilder ret = new StringBuilder();
        for (int num : numsArr) {
            ret.append(num);
        }
        return ret.toString();
    }
}

時(shí)間復(fù)雜度:O(nlognlogm)

空間復(fù)雜度:O(logn)

方法一:排序(go)

具體的方法思路已經(jīng)在上文中表述,詳情請(qǐng)看上文內(nèi)容。

1.核心為插入排序

2.比大小的函數(shù),相加的兩種string結(jié)果,然后比較各位大小。

3.將排序的結(jié)果累加

func largestNumber(nums []int) string {
    sort.Slice(nums, func(i, j int) bool {
        x, y := nums[i], nums[j]
        sx, sy := 10, 10
        for sx &lt;= x {
            sx *= 10
        }
        for sy &lt;= y {
            sy *= 10
        }
        return sy*x+y &gt; sx*y+x
    })
    if nums[0] == 0 {
        return "0"
    }
    ans := []byte{}
    for _, x := range nums {
        ans = append(ans, strconv.Itoa(x)...)
    }
    return string(ans)
}

時(shí)間復(fù)雜度:O(nlognlogm)

空間復(fù)雜度:O(logn)

以上就是Go&amp;java算法之最大數(shù)示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Go java算法最大數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 解決idea spring boot 修改html等不重啟即時(shí)生效的問題

    解決idea spring boot 修改html等不重啟即時(shí)生效的問題

    這篇文章主要介紹了解決idea spring boot 修改html等不重啟即時(shí)生效的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java?Lambda表達(dá)式語法及用法示例

    Java?Lambda表達(dá)式語法及用法示例

    這篇文章主要給大家介紹了關(guān)于Java?Lambda表達(dá)式語法及用法的相關(guān)資料,lambda表達(dá)式是JAVA8中提供的一種新的特性,它支持Java也能進(jìn)行簡(jiǎn)單的"函數(shù)式編程",文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • java單例模式使用及注意事項(xiàng)

    java單例模式使用及注意事項(xiàng)

    這篇文章主要介紹了java單例模式使用及注意事項(xiàng),需要的朋友可以參考下
    2014-04-04
  • SpringBoot獲取HttpServletRequest的3種方式總結(jié)

    SpringBoot獲取HttpServletRequest的3種方式總結(jié)

    這篇文章主要給大家介紹了關(guān)于SpringBoot獲取HttpServletRequest的3種方式,在Spring boot項(xiàng)目中經(jīng)常要用到Servlet的常用對(duì)象如HttpServletRequest request,HttpServletResponse response,HttpSession session,需要的朋友可以參考下
    2023-08-08
  • 完美解決java.lang.OutOfMemoryError處理錯(cuò)誤的問題

    完美解決java.lang.OutOfMemoryError處理錯(cuò)誤的問題

    下面小編就為大家?guī)硪黄昝澜鉀Qjava.lang.OutOfMemoryError處理錯(cuò)誤的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • SpringCloud turbine監(jiān)控實(shí)現(xiàn)過程解析

    SpringCloud turbine監(jiān)控實(shí)現(xiàn)過程解析

    這篇文章主要介紹了SpringCloud turbine監(jiān)控實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • JAVA線程同步實(shí)例教程

    JAVA線程同步實(shí)例教程

    這篇文章主要介紹了JAVA線程同步實(shí)例教程,在Java程序設(shè)計(jì)中有著非常廣泛的應(yīng)用,需要的朋友可以參考下
    2014-08-08
  • mybatis中foreach報(bào)錯(cuò):_frch_item_0 not found的解決方法

    mybatis中foreach報(bào)錯(cuò):_frch_item_0 not found的解決方法

    這篇文章主要給大家介紹了mybatis中foreach報(bào)錯(cuò):_frch_item_0 not found的解決方法,文章通過示例代碼介紹了詳細(xì)的解決方法,對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • Java實(shí)現(xiàn)經(jīng)典游戲推箱子的示例代碼

    Java實(shí)現(xiàn)經(jīng)典游戲推箱子的示例代碼

    《推箱子》推箱子是一個(gè)古老的游戲,目的是在訓(xùn)練你的邏輯思考能力。本文將利用Java實(shí)現(xiàn)這一經(jīng)典的小游戲,并采用了swing技術(shù)進(jìn)行了界面化處理,需要的可以參考一下
    2022-02-02
  • SpringBoot集成Milvus實(shí)現(xiàn)數(shù)據(jù)增刪改查功能

    SpringBoot集成Milvus實(shí)現(xiàn)數(shù)據(jù)增刪改查功能

    milvus支持的語言比較多,支持python, Java, Go,node等開發(fā)語言,本文主要介紹如何使用Java語言,采用springboot框架集成和調(diào)用Milvus數(shù)據(jù)庫,這篇文章主要介紹了SpringBoot集成Milvus,實(shí)現(xiàn)數(shù)據(jù)增刪改查,需要的朋友可以參考下
    2025-04-04

最新評(píng)論

南漳县| 三台县| 新安县| 丰台区| 昌乐县| 周至县| 通辽市| 南投县| 香港| 新安县| 栖霞市| 五莲县| 太原市| 蒲城县| 阿坝县| 周口市| 和平区| 榆林市| 蓬莱市| 敦化市| 大化| 烟台市| 香港| 酒泉市| 沁阳市| 介休市| 恩施市| 民丰县| 长海县| 应城市| 贡山| 铜陵市| 育儿| 新野县| 泾阳县| 买车| 湖口县| 都匀市| 阜康市| 汾阳市| 九江县|