劍指Offer第三十二題 把陣列排成最小的數

2021-09-17 18:19:19 字數 528 閱讀 8692

輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。

思路:實際上不難,就是排序問題,但是不是按大小排序了,排序的比較方式換了而已,雖然筆者寫完能跑出來,但是寫得不好,這裡新增的是改進版思路,比較簡單。

排序方式,實際上是兩兩組合的比較,比如 3 和 23

這裡我們比較  323 和 233 的大小,由於 233更小,所以3和23換位,依次類推。

但是這個方法怎麼寫成程式呢,這裡我們需要用到string的性質,string可以直接相加,加起來就是上面的效果,所以我們比較的時候直接轉成string即可。

**如下:(這裡用了sort的仿函式,直接呼叫了stl的排序)

class solution 

static bool myswap(int a , int b)

};

100題 第三十二 陣列 規劃

一,題目 有兩個序列a,b,大小都為n,序列元素的值任意整數,無序 要求 通過交換a,b中的元素,使 序列a元素的和 與 序列b元素的和 之間的差最小。例如 var a 100 99 98 1 2 3 var b 1,2,3,4,5,40 有兩個序列a,b,大小都為n,序列元素的值任意整數,無序 要...

《劍指offer》第三十二題(之字形列印二叉樹)

面試題32 三 之字形列印二叉樹 題目 請實現乙個函式按照之字形順序列印二叉樹,即第一行按照從左到右的順 序列印,第二層按照從右到左的順序列印,第三行再按照從左到右的順序列印,其他行以此類推。include include binarytree.h include void print binary...

牛客劍指offer第三十三題(醜數)

把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。定義遞迴函式,該遞迴函式用於求解當前數是否是醜數。採用迭代將每個數傳入遞迴函式判斷是否是醜數,若是醜數,返回true,醜數...