演算法設計周記(五) 字典排序

2021-08-09 02:33:54 字數 971 閱讀 9926

給定乙個陣列,將其中所有元素以字串的形式拼接起來,要求得到最大的結果。

此題的一般思路很明顯,在給定陣列的所有元素中找到優先順序最大的那乙個將它拼接到用於返回的字串尾部,然後把它pop掉,迴圈此操作直到陣列為空。為此我額外定義了乙個函式,若「字串a+字串b」的字典序小於「字串b+字串a」,則判定字串a的優先順序低於字串b。
class solution 

string largestnumber(vector& nums)

while(!str.empty())

}str.erase(big);

rtn += tmp;

}if (rtn.size() > 1 && rtn[0] == '0') rtn = "0";

return rtn;}};

這種演算法比較容易想到,但時間複雜度為o(n²),空間複雜度為o(n),還需要較大程度的改善。

要想對演算法進行優化,首先可以提高排序的效率,那麼利用algorithm庫函式sort無疑是最好的選擇。

class solution );

string ans;

for(int i=0; ic++的sort函式是一種智慧型排序,通常情形下會採用快速排序,然而當它發現快速排序複雜度惡化時,會自動調整成堆排序,時間複雜度為o(n*logn),空間開銷為常量,同時正規表示式的運用也使**大大簡潔化。

Swift基礎(五)字典

字典 swift的字典使用 dictionary定義,其中keytype是字典中鍵的資料型別,valuetype是字典中對應於這些鍵所儲存值得資料型別。各個值跟乙個唯一的key關聯,key在字典中是值得唯一標識。var airports dictionary 建立了乙個型別的空字典,它的鍵是stri...

Python學習筆記五 字典

字典是一系列鍵值對組成,每個鍵對應乙個關聯值,最外面用 括起來。例如,你想說明li hua的國籍,年齡,性別 1 li hua 2.print li hua age 輸出鍵為age的值3.191 li hua 將鍵為job,值為student新增到字典末尾 2.li hua job student ...

python學習之路五 字典 dict

python中的字典 1.乙個簡單的字典 person 2.訪問字典中的資料 print person name 3.新增鍵 值對 字典是一種動態結構,可隨時在其中新增鍵 值對 person height 180 4.修改字典中的值 person height 175 5.刪除鍵 值對 使用del語...