乙個演算法題

2021-10-10 15:31:08 字數 1369 閱讀 4972

1-100範圍中,有1000個可重複的數,以出現次數的多少排序,返回乙個新陣列?

/**

* 根據物件的乙個屬性排序

* @param data 原始陣列(陣列單個元素為物件)

* @param sortkey 要根據排序的key

* @param type desc 倒序, asc 正序

*/function

sortobjarrbykey

(data, sortkey, type)

else

if(type ===

'desc'

)return arr;

}/**

* 以數字出現的次數排序

* @param 原始陣列

*/function

sortarrbycount

(arr)

;var origincountarr =

; arr.

foreach

(item =>);

console.

log(

'countobj'

, countobj)

; origincountarr = object.

keys

(countobj)

.map

(key =>;}

);var sortedcountarr =

sortobjarrbykey

( origincountarr,

'value'

,'desc');

let sortedcountnumarr = sortedcountarr.

map(item =>

+item.key)

; console.

log(

'result:'

, sortedcountnumarr)

;return sortedcountnumarr;

}// 用少量數量模擬一下

var arr =[1

,4,2

,1,5

,7,8

,10,25

,11,10

,7,100,7

,20];

let resultarr =

sortarrbycount

(arr)

;

輸出結果:

應該還有其他更精妙的解法,想到了補充。

乙個演算法題

題目描述 某省會城市街道縱橫交錯,為了監控路燈的執行狀況,每條街道使用乙個數字字串標識該街道上所有路燈的執行狀況。假設路燈只有如下 3種狀態 分別用數字 0,1,2標識,一盞路燈只對應其中一種狀態 0 標識路燈熄滅 1 標識路燈開啟 2 標識路燈故障 請根據輸入的字串,找出該街道上連續的處於相同狀態...

乙個演算法題

關鍵字 演算法 有101塊金幣,其中一塊是假的,要求用無砝碼的天平稱兩次,判斷是真的金幣重還是假的重 答案 分三份,第乙份份五十個,第二份五十個,第三份份乙個。第一次 將兩份五十個分別放到天平兩端。如果天平是平的,證明第三份是假的。這時只要從真的裡拿出乙個,和假的分別放到天平兩端,就能知道假的是輕是...

乙個有趣的演算法題

今天看到一道很有意思的演算法面試題,因為之前很少研究演算法,好奇心加上暴躁的脾氣,就決定一定要乾掉這道題 5個小姐站成一列 他們的姓不同 衣服顏色不同 和不同的飲料 樣不同的寵物 吃不同的水果 1錢小姐穿紅色的衣服,2翁小姐養乙隻狗,3陳小姐喝茶。4穿綠衣服的站在白衣服的左邊,5綠衣服的再喝咖啡,6...