免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
求數(shù)組中元素組合的最大字符串(轉(zhuǎn))

原文鏈接:https://www.fanhaobai.com/2017/04/array-form-max-string.html

題目

給定一個所有元素為非負(fù)的數(shù)組,將數(shù)組中的所有數(shù)字連接起來,求最大的那個數(shù)。

示例:
輸入:

4,94,9,14,1

輸出:

9944141

輸入:

121,89,98,15,4,3451

輸出:

98894345115121

解題思路

  • 比較規(guī)則:分析 a 和 b 的排列,因?yàn)檫@ 2 個數(shù)存在 2 種排列情況,既 a_bb_a,若 a_b 組合值大于 b_a 組合,那么認(rèn)為 a “大于” b,則 a 需要排列在 b 前面,反之則需要交換 a 和 b 的位置。同我們熟悉的排序算法唯一不同的是,這里不是直接通過比較 2 個元素值大小,而是需要通過排列后的 2 個新值進(jìn)行大小比較。

  • 排序算法:由于只是比較規(guī)則的不同,所以常用的排序算法(冒泡、快速、堆)一樣適用。

這里使用冒泡排序來進(jìn)行說明,每一趟找出待排序元素的最小值,算法執(zhí)行流程如下:



編碼實(shí)現(xiàn)

定義比較規(guī)則,ab 和 ba 組合后的數(shù)字進(jìn)行值大小的比較:

1
2
3
4
5
6
function ($a, $b) {
if ($a == $b) {
return 0;
}
return $a . $b > $b . $a ? -1 : 1;
}

接收輸入并輸出結(jié)果:

1
2
3
4
5
6
7
8
9
10
11
12
function array_form_max_str(array $Arr) {
foreach ($Arr as $value) {
if ($value < 0) {
return '';
}
}
usort($Arr, "cmp");

return implode('', $Arr);
}
//輸入:4,94,9,14,1
echo array_form_max_str(explode(',', $input)), PHP_EOL;

原文:大專欄  求數(shù)組中元素組合的最大字符串(轉(zhuǎn))


來源:https://www.icode9.com/content-4-497251.html
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
c語言中冒泡排序、插入排序、選擇排序算法比較
php四種基礎(chǔ)算法:冒泡,選擇,插入和快速排序法
冒泡排序的實(shí)現(xiàn)和優(yōu)化
十大經(jīng)典排序算法(上)
二維數(shù)組的批量賦值問題
Java程序員必學(xué)的8大排序算法之冒泡排序
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服