首页 > 其他分享 >力扣刷题——3096.得到更多分数的最少关卡数目

力扣刷题——3096.得到更多分数的最少关卡数目

时间:2024-08-18 14:37:54浏览次数:14  
标签:alicePlay int possible alice 力扣 3096 preSum bob 刷题

根据题意,假如alice选择完成第i关到第j关,那么bob需要完成第j+1关到第n关,其中i<=j<n。如此可以想到对关卡数组进行预处理,构建一个前缀和数组,保存假如从第0关每关都通过的话,到第i关所得到的分数。
通过遍历一次前缀和数组,能够得到每个时刻alice得到的分数和bob得到的分数,当alice获得的分数超过了bob那么就可以直接输出结果,假如遍历完成后仍然没有alice得分高于bob得分的情况,那么就输出-1。

class Solution
{
public:
    int minimumLevels(vector<int> &possible)
    {
        vector<int> preSum;
        int totalSum = possible[0] == 1 ? 1 : -1;
        preSum.emplace_back(0);
        int alicePlay = 1;
        for (int i = 1; i < possible.size(); i++)
        {
            preSum.emplace_back(totalSum);
            totalSum += possible[i] == 1 ? 1 : -1;
        }
        while (alicePlay < preSum.size())
        {
            if (preSum[alicePlay] > totalSum - preSum[alicePlay])
                return alicePlay;
            alicePlay++;
        }

        return -1;
    }
};

标签:alicePlay,int,possible,alice,力扣,3096,preSum,bob,刷题
From: https://www.cnblogs.com/yuhixyui/p/18365630

相关文章

  • 【CTF刷题4】ctfshow刷题web部分wp(3)
    题目来源:ctfshow菜狗杯算力超群考点:抓包,eval()函数利用,漏洞利用打开发现是个计算器。一般碰到计算器就很容易和命令执行扯到一块。随便计算下然后抓个包发现是get方法,改参数让它报错。发现eval()函数。python语言,用危险函数eval()进行运算。这里我们使用沙......
  • 算法刷题记录 八十五【图论的广度优先搜索理论基础】
    前言图论章节第2篇。第1篇:记录八十二【图论理论基础及深度优先搜索算法】;本文:记录八十五【图论的广度优先搜索理论基础】一、广度优先搜索理论基础广度优先搜索理论基础参考链接1.1知识点框架1.2模拟广度搜索的过程在有向图中,以下图为例,如何进行广度优先搜索......
  • 力扣面试经典算法150题:删除有序数组中的重复项 II
    删除有序数组中的重复项II今天的题目是力扣面试经典150题中的数组的中等难度题:删除有序数组中的重复项II题目链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/description/?envType=study-plan-v2&envId=top-interview-150题目描述给定一......
  • 力扣面试经典算法150题:最后一个单词的长度
    最后一个单词的长度今天的题目是力扣面试经典150题中的数组的简单题:最后一个单词的长度题目链接:https://leetcode.cn/problems/length-of-last-word/description/?envType=study-plan-v2&envId=top-interview-150题目描述给定一个仅包含大小写字母和空格’’的字符......
  • 括号生成-力扣
    classSolution{private:vector<string>result;stringstr;public:voidbacktracking(intn,intl,intr){if(l==n&&r==n){result.push_back(str);return;}if(l<n){......
  • 合并K个升序链表-力扣
    /***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(nullptr){}*ListNode(intx,ListNode*next):val(x),next(ne......
  • 打卡信奥刷题(574)用Scratch图形化工具信奥B2090[普及组/提高] 年龄与疾病
    年龄与疾病题目描述某医院进行一项研究,想知道某项疾病是否与年龄有关。因此对以往的诊断记录进行整理,统计0-18、19-35、36-60、61及以上这四个年龄段的患者人数占总患者人数的比例。输入格式输入共2......
  • 杭电基础100题(2000~2099)C++ 本萌新的刷题日记
    开始之前本人是刚学完C++基础语法的萌新,从B站了解到了杭电的100道水题基础题,于是打算开始刷题并在这里写下解题思路和一些想法,以便日后回顾,顺便分享给大家。我的计划是一天15题。这是我第一次在CSDN上发文章,还不是很熟悉怎么编辑。基本上每一题都会把代码和感想放这里。200......
  • 力扣面试经典算法150题:找出字符串中第一个匹配项的下标
    找出字符串中第一个匹配项的下标今天的题目是力扣面试经典150题中的数组的简单题:找出字符串中第一个匹配项的下标题目链接:https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/description/?envType=study-plan-v2&envId=top-interview-......
  • Leetcode刷题笔记8.12-8.16
    Leetcode刷题笔记8.12-8.1619.删除倒数第n个链表结点(8.12)一个巧妙删除倒数第n个结点的trick该方法避免了对链表的一次全面扫描来获得总长度//返回链表的倒数第k个节点ListNodefindFromEnd(ListNodehead,intk){ListNodep1=head;//p1先走k步......