給你乙個由 不同 整數組成的整數陣列 arr 和乙個整數 k 。
每回合遊戲都在陣列的前兩個元素(即 arr[0] 和 arr[1] )之間進行。比較 arr[0] 與 arr[1] 的大小,較大的整數將會取得這一回合的勝利並保留在位置 0 ,較小的整數移至陣列的末尾。當乙個整數贏得 k 個連續回合時,遊戲結束,該整數就是比賽的 贏家 。
返回贏得比賽的整數。
題目資料 保證 遊戲存在贏家。
解題思路:
1. 雙指標,乙個指定當前贏家,乙個遊走指標
2. 根據資料遷移規則,大的往前,小的往後,當遊走指標把當前陣列走完時,當前贏家是陣列中最大的資料;
3. 贏家有兩種可能:1. 遊走指標走完陣列前,找到目標贏家;2. 遊走指標走完陣列,都沒有找到,這種情況,固定指標停留在陣列中最大那個數,後面所有資料都比他小,比多少次,最後贏家就是他。
這就好比排隊摔跤比賽,當綠巨人出現時,他就是擂主,比多少次,都是他贏。 沒輪到他時,前面的選手還有機會;
/**
* @param arr
* @param k
* @return
*/var getwinner = function(arr, k) else
if(count === k) return arr[curindex];
if(compareindex >= initlength) return arr[curindex];
}};
陣列 1535 找出陣列遊戲的贏家
給你乙個由 不同 整數組成的整數陣列 arr 和乙個整數 k 每回合遊戲都在陣列的前兩個元素 即 arr 0 和 arr 1 之間進行。比較 arr 0 與 arr 1 的大小,較大的整數將會取得這一回合的勝利並保留在位置 0 較小的整數移至陣列的末尾。當乙個整數贏得 k 個連續回合時,遊戲結束,該...
LeetCode 1535 找出陣列遊戲的贏家
題意 你乙個由 不同 整數組成的整數陣列 arr 和乙個整數 k 每回合遊戲都在陣列的前兩個元素 即 arr 0 和 arr 1 之間進行。比較 arr 0 與 arr 1 的大小,較大的整數將會取得這一回合的勝利並保留在位置 0 較小的整數移至陣列的末尾。當乙個整數贏得 k 個連續回合時,遊戲結束...
找出陣列重複的數
1 在乙個長度為 n 的陣列裡的所有數字都在 0 n 1 的範圍內,找出任意乙個重複的數。簡明思路 按照題目要求,如果這個陣列裡面的數恰好沒有重複的數,則陣列下標跟對應的值相等。否則,當掃瞄到下標為 i 的數字時,比較這個下標的值 m 是不是等於 i 如果是,說明這個值就在它對應的下標下,繼續掃瞄 ...