(1,2,3,4,)
(4,3,2,1)
(2,3,4,5)
(5,6,7,8)
有几百组这样的数
我想计算每一列里出现的次数最少的那个数字。
没思路。。。
1
lhx2008 2018-10-26 23:56:00 +08:00 via Android 1
几百组很快,给每一列开个 map 统计下就好
|
2
limuyan44 2018-10-27 00:26:34 +08:00 via Android
只有几百个连特殊算法都不要,直接算
|
3
zzj0311 2018-10-27 00:32:36 +08:00 via Android
几百硬算就是了,几百万才要考虑怎么做~
|
4
autoxbc 2018-10-27 02:30:48 +08:00
```js
const numCount = 4 ; const setCount = 1000*1000 ; const randomNum = () => Math.floor( Math.random()*10 ); const randomSet = () => Array(numCount).fill().map(randomNum); const allData = Array(setCount).fill().map(randomSet); console.time('t1'); const rslt = Array(numCount).fill().map( () => new Map() ); allData.forEach( set => { set.forEach( (num,idx) => { const map = rslt[idx]; const count = map.get(num) ? map.get(num) : 0 ; map.set( num , count+1 ); } ); } ); console.timeEnd('t1'); console.log( rslt.map( map => [...map].map( e => e.join() ) ) ); ``` 一百万组数据耗时 1748 ms,CPU: i3 3220T |
5
pipapa 2018-10-27 08:12:23 +08:00 via Android
Trie 加上堆排序怎么样?
|