5476 找出陣列遊戲的贏家

2021-10-08 18:47:10 字數 744 閱讀 2984

給你乙個由 不同 整數組成的整數陣列 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 如果是,說明這個值就在它對應的下標下,繼續掃瞄 ...