队列的击鼓传花面试题

315 阅读1分钟
function passGame(nameList, num) {
  // 创建一个队列结构
  var queue = new Queue
  // 将所有人依次放入队列中
  for(var i = 0; i < nameList.length; i++ ){
        queue.enqueue(nameList[i])
  }
  // 开始数数字
  while (queue.size() > 1) {
    // 不是num的时候,重新加入队列的末尾
    // 是num这个数字的时候,删除掉从队列中
    // num数字之前的人重新放入到末尾
    for(var i = 0; i < num - 1 ; i++ ){ 
      queue.enqueue(queue.dequeue()) 
    }
      // num对应的这个直接从队列中删除
    queue.dequeue()
  }
  // 获取剩下的那个人
  alert(queue.size())
  
  var lastOne = queue.front()
  // console.log(queue.front());

  alert('最后的王者:' + lastOne)
  return nameList.indexOf(lastOne)
}

name = ['buluohe1', 'buluohe13', 'buluohe144', 'buluohe155', 'buluohe1222']

alert(passGame(name, 3))