6090. 極大極小遊戲
描述
給你一個下标從 0 開始的整數數組 nums ,其長度是 2 的幂。
對 nums 執行下述算法:
設 n 等于 nums 的長度,如果 n == 1 ,終止 算法過程。否則,建立 一個新的整數數組 newNums ,新數組長度為 n / 2 ,下标從 0 開始。
對于滿足 0 <= i < n / 2 的每個 偶數 下标 i ,将 newNums[i] 指派 為 min(nums[2 * i], nums[2 * i + 1]) 。
對于滿足 0 <= i < n / 2 的每個 奇數 下标 i ,将 newNums[i] 指派 為 max(nums[2 * i], nums[2 * i + 1]) 。
用 newNums 替換 nums 。
從步驟 1 開始 重複 整個過程。
執行算法後,傳回 nums 中剩下的那個數字。
class Solution {
public int minMaxGame(int[] nums) {
int n = nums.length;
while (n != 1) {
n /= 2;
for (int i = 0; i < n; i++) {
if (i % 2 == 0) {
nums[i] = Math.min(nums[i*2],nums[i*2+1]);
} else {
nums[i] = Math.max(nums[i*2],nums[i*2+1]);
}
}
}
return nums[0];
}
}