LeetCode——2660. 保龄球游戏的获胜者

通过万岁!!!

  • 题目比较简单,就是给你两个数组,大小为n,分别表示n次投掷保龄球的得分。然后让你按照某种规则计算出最后的总得分,从而判断胜负。计算的规则就是如果出现了10分,那么接下来两轮的分数可以进行*2的操作。
  • 思路:遍历两个数组就好了,然后记录一下10分的位置,每次判断如果当前位置与10分的位置的具体小于2等于2,则这次的比分*2后再加到sum中。并且需要判断是不是要更新下标的位置。但是我写的代码空间复杂度比较高,我进行了优化,取消sum的定义,而是直接放在数组的第0个元素中,但是并没有啥提升。
  • 技巧:数组的遍历

java代码

java 复制代码
class Solution {
    public int isWinner(int[] player1, int[] player2) {
        int tenIdx1 = player1[0] == 10 ? 0 : -3;// 距离最开始要超过2
        int tenIdx2 = player2[0] == 10 ? 0 : -3;
        for (int i = 1; i < player1.length; i++) {
            player1[0] += i - tenIdx1 <= 2 ? 2 * player1[i] : player1[i];
            player2[0] += i - tenIdx2 <= 2 ? 2 * player2[i] : player2[i];
            tenIdx1 = player1[i] == 10 ? i : tenIdx1;
            tenIdx2 = player2[i] == 10 ? i : tenIdx2;
        }
        return player1[0] > player2[0] ? 1 : player1[0] == player2[0] ? 0 : 2;
    }
}
  • 总结:题目不是很难,但是主要是怎么优化一下空间复杂度。
相关推荐
无心水8 小时前
【OpenClaw:实战部署】5、全平台部署OpenClaw(Win/Mac/Linux/云服务器)——10分钟跑通第一个本地AI智能体
java·人工智能·ai·智能体·ai智能体·ai架构·openclaw
一只大袋鼠9 小时前
Redis 安装+基于短信验证码登录功能的完整实现
java·开发语言·数据库·redis·缓存·学习笔记
Eward-an9 小时前
LeetCode 1980 题通关指南|3种解法拆解“找唯一未出现二进制串”问题,附Python最优解实现
python·算法·leetcode
程序员酥皮蛋9 小时前
hot 100 第四十题 40.二叉树的层序遍历
数据结构·算法·leetcode
※DX3906※10 小时前
Java排序算法--全面详解面试中涉及的排序
java·开发语言·数据结构·面试·排序算法
木斯佳10 小时前
HarmonyOS 6实战:从爆款vlog探究鸿蒙智能体提取关键帧算法
算法·华为·harmonyos
cur1es11 小时前
【JVM类加载&双亲委派模型&垃圾回收机制】
java·jvm·gc·垃圾回收·类加载·双亲委派模型
Mr.朱鹏11 小时前
JVM-GC垃圾回收案例
java·jvm·spring boot·算法·spring·spring cloud·java-ee
焦糖玛奇朵婷11 小时前
实测扭蛋机小程序:开发简单,互动有趣
java·大数据·程序人生·小程序·软件需求
Nan_Shu_61411 小时前
学习: 尚硅谷Java项目之小谷充电宝(3)
java·后端·学习