栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【力扣题解】6090. 极大极小游戏

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【力扣题解】6090. 极大极小游戏

博主目前也在学习,有错误欢迎指正
保持热爱 奔赴星海

文章目录
    • 一、题目
      • 1、题目描述
      • 2、基础框架
      • 3、原题链接
    • 二、解题报告
      • 1、思路分析
      • 2、代码详解
    • 三、本题知识

一、题目 1、题目描述

给你一个下标从 0 开始的整数数组 nums ,其长度是 2 的幂。
对 nums 执行下述算法:

  1. 设 n 等于 nums 的长度,如果 n == 1 ,终止 算法过程。否则,创建 一个新的整数数组 newNums ,新数组长度为 n / 2 ,下标从 0 开始。
  2. 对于满足 0 <= i < n / 2 的每个 偶数 下标 i ,将 newNums[i] 赋值 为 min(nums[2 * i], nums[2 * i + 1]) 。
  3. 对于满足 0 <= i < n / 2 的每个 奇数 下标 i ,将 newNums[i] 赋值 为 max(nums[2 * i], nums[2 * i + 1]) 。
  4. 用 newNums 替换 nums 。
  5. 从步骤 1 开始 重复 整个过程。

执行算法后,返回 nums 中剩下的那个数字。

2、基础框架
  • Java版本框架代码如下:
class Solution {
    public int minMaxGame(int[] nums) {

    }
}
3、原题链接

6090. 极大极小游戏

二、解题报告 1、思路分析

       (1)当数组的长度等于一的时候,直接返回这个数组的元素。
       (2)当数组的长度大于一时,定义数组newNums ,遍历nums数组,根据题目要求对newNums赋值,然后递归。

2、代码详解
class Solution {
    public int minMaxGame(int[] nums) {
        int n = nums.length/2;
        if(nums.length == 1) {
            return nums[0];
        }
        int[] newNums = new int[n];
        for(int i = 0;i < n;i++) {
            if(i%2 == 0) {
                newNums[i] = Math.min(nums[2*i],nums[2*i + 1]);
            }else {
                newNums[i] = Math.max(nums[2*i],nums[2*i + 1]);
            }
        }
        return minMaxGame(newNums);
    }
}
三、本题知识

递归

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/952723.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号