老师这样的思路效率如何呢?
来源:3-4 卡牌分组-原理讲解

吐司吐司
2019-02-24
假定 arr已经是排过序的
我用一个fore来记录之前数字的个数 cur记录当前的个数 然后 如果fore % cur 或者 cur % fore 都不等于0 说明不是整倍数的就 false
let sort = (arr) => {
if( arr[0] != arr[1] ) return false
let fore = 0 ,cur = 1
for( let i = 1 ; i < arr.length ; i++ ){
if( arr[i] === arr[i-1] ){
cur++
}else if( arr[i] != arr[i-1] ){
if( fore % cur != 0 && cur % fore != 0 && fore!=0 ){
return false
}
fore = cur;
cur = 1;
}
if( i === arr.length - 1 ){
if( fore % cur != 0 && cur % fore != 0 ){
return false
}
}
}
return true
}
写回答
2回答
-
吐司吐司
提问者
2019-02-24
emmm 看了下一章节有的用例不能通过 还得去求最大公因数 所以我感觉我这个应该也是可以的...orz
00 -
吐司吐司
提问者
2019-02-24
不太好..这个好像太复杂了 需要判断前后个数是否存在除1外的公因数..
00
相似问题