老师这样的思路效率如何呢?

来源: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

0
0

吐司吐司

提问者

2019-02-24

不太好..这个好像太复杂了 需要判断前后个数是否存在除1外的公因数..

0
0

JavaScript版 数据结构与算法

填补前端同学的算法短板,掌握面试中最常见的算法与数据结构

2467 学习 · 395 问题

查看课程