本文共 1223 字,大约阅读时间需要 4 分钟。
function getWinner(arr, k){ var len = arr.length; var count = 0; while(1){ if(arr[0] > arr[1]){ let a = arr[1]; arr.splice(1, 1); arr.push(a); count++; if(count == k){ return arr[0]; } }else{ let a = arr.shift(); arr.push(a); } }}var arr = [3,2,1];var k = 10;
这样写也可以,但是运行速度很慢,会报出超时错误。
var getWinner = function(arr, k) { var len = arr.length; var count = 0; while(count < len - 1 && count < k){ if(arr[0] > arr[1]){ let a = arr[1]; arr.splice(1, 1); arr.push(a); count++; }else{ let a = arr.shift(); count = 0; arr.push(a); count++; } } return arr[0];};
同样时间超限,md;
终于通过了,草拟码的
var getWinner = function(arr, k) { var len = arr.length; var count = 1; var pre = Math.max(arr[0], arr[1]); if(k == 1){ return pre; } for(let i = 2; i < len; i++){ let cur = arr[i]; if(pre > cur){ count++; if(count == k){ return pre; } }else{ pre = cur; count =1; } } return pre;};
转载地址:http://fqtzi.baihongyu.com/