100148. 最小数字游戏 --力扣 -- JAVA

简介: 你有一个下标从 0 开始、长度为 偶数 的整数数组 nums ,同时还有一个空数组 arr 。Alice 和 Bob 决定玩一个游戏,游戏中每一轮 Alice 和 Bob 都会各自执行一次操作。游戏规则如下:每一轮,Alice 先从 nums 中移除一个 最小 元素,然后 Bob 执行同样的操作。接着,Bob 会将移除的元素添加到数组 arr 中,然后 Alice 也执行同样的操作。游戏持续进行,直到 nums 变为空。返回结果数组 arr 。

 题目

你有一个下标从 0 开始、长度为 偶数 的整数数组 nums ,同时还有一个空数组 arr 。Alice 和 Bob 决定玩一个游戏,游戏中每一轮 Alice 和 Bob 都会各自执行一次操作。游戏规则如下:

    • 每一轮,Alice 先从 nums 中移除一个 最小 元素,然后 Bob 执行同样的操作。
    • 接着,Bob 会将移除的元素添加到数组 arr 中,然后 Alice 也执行同样的操作。
    • 游戏持续进行,直到 nums 变为空。

    返回结果数组 arr

    解题思路

      1. 对数组进行从小到大的排序;
      2. 每两个元素交换位置;
      3. 返回数组。

      代码展示

      class Solution {
          public int[] numberGame(int[] nums) {
              Arrays.sort(nums);
              int n = nums.length;
              for (int i = 0; i < n; i += 2){
                  int temp = nums[i];
                  nums[i] = nums[i + 1];
                  nums[i + 1] = temp;
              }
              return nums;
          }
      }

      image.gif


      目录
      相关文章
      |
      11月前
      |
      算法 Go 索引
      【LeetCode 热题100】45:跳跃游戏 II(详细解析)(Go语言版)
      本文详细解析了力扣第45题“跳跃游戏II”的三种解法:贪心算法、动态规划和反向贪心。贪心算法通过选择每一步能跳到的最远位置,实现O(n)时间复杂度与O(1)空间复杂度,是面试首选;动态规划以自底向上的方式构建状态转移方程,适合初学者理解但效率较低;反向贪心从终点逆向寻找最优跳点,逻辑清晰但性能欠佳。文章对比了各方法的优劣,并提供了Go语言代码实现,助你掌握最小跳跃次数问题的核心技巧。
      441 15
      |
      Java
      Java实现贪吃蛇游戏
      本文介绍了如何使用Java实现一个简单的贪吃蛇游戏。
      673 4
      |
      算法
      Leetcode第45题(跳跃游戏II)
      这篇博客文章讨论了如何使用贪心算法解决LeetCode第45题“跳跃游戏II”,目的是找到使用最少跳跃次数到达数组末尾的策略。
      314 8
      Leetcode第45题(跳跃游戏II)
      |
      7月前
      |
      设计模式 人工智能 前端开发
      现代 Java 实现数字华容道与石头迷阵游戏的项目实战及项目开发指南
      本项目基于Java 17+,采用JavaFX与MVC架构,实战开发数字华容道/石头迷阵游戏。内容涵盖技术选型、核心逻辑、现代GUI设计、动画实现及项目打包发布,结合sealed class、record等新特性,打造简洁可维护的游戏代码结构。
      273 0
      |
      8月前
      |
      机器学习/深度学习 存储 Java
      Java 大视界 -- Java 大数据机器学习模型在游戏用户行为分析与游戏平衡优化中的应用(190)
      本文探讨了Java大数据与机器学习模型在游戏用户行为分析及游戏平衡优化中的应用。通过数据采集、预处理与聚类分析,开发者可深入洞察玩家行为特征,构建个性化运营策略。同时,利用回归模型优化游戏数值与付费机制,提升游戏公平性与用户体验。
      LeetCode第55题跳跃游戏
      LeetCode第55题"跳跃游戏"的解题方法,通过记录当前最远可达到的位置并判断每个位置是否可达以及能否到达末尾,有效解决了跳跃至数组末尾的可行性问题。
      LeetCode第55题跳跃游戏
      |
      11月前
      |
      算法 Go
      【LeetCode 热题100】55:跳跃游戏(详细解析)(Go语言版)
      本篇解析详细讲解了 LeetCode 热题 55——跳跃游戏(Jump Game)。通过判断是否能从数组起点跳至终点,介绍了两种高效解法:贪心算法和反向思维。贪心法通过维护最远可达位置 `maxReach` 实现一次遍历,时间复杂度 O(n),空间复杂度 O(1);反向法则从终点回溯,判断是否可到达起点。两者均简洁高效,适合面试使用。延伸题目如 LeetCode 45 进一步提升挑战。
      346 7
      |
      IDE Java API
      Java游戏开发基础:从零开始制作一个简单的2D游戏
      本文介绍了使用Java开发一个简单的2D避障游戏的基础流程。
      1242 10
      |
      开发框架 IDE Java
      java制作游戏,如何使用libgdx,入门级别教学
      本文是一篇入门级教程,介绍了如何使用libgdx游戏开发框架创建一个简单的游戏项目,包括访问libgdx官网、设置项目、下载项目生成工具,并在IDE中运行生成的项目。
      771 1
      java制作游戏,如何使用libgdx,入门级别教学
      |
      算法 Java
      LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
      LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
      209 6

      热门文章

      最新文章