首页 > 其他分享 >力扣每日一题 6/7

力扣每日一题 6/7

时间:2024-06-08 09:33:44浏览次数:18  
标签:分数 相等 nums 每日 元素 力扣 数组 操作

3038.相同分数的最大操作数目I [简单]

题目:

给你一个整数数组 nums ,如果 nums 至少 包含 2 个元素,你可以执行以下操作:

  • 选择 nums 中的前两个元素并将它们删除。

一次操作的 分数 是被删除元素的和。

在确保 所有操作分数相同 的前提下,请你求出 最多 能进行多少次操作。

请你返回按照上述要求 最多 可以进行的操作次数。

示例 1:

输入:nums = [3,2,1,4,5]
输出:2
解释:我们执行以下操作:
- 删除前两个元素,分数为 3 + 2 = 5 ,nums = [1,4,5] 。
- 删除前两个元素,分数为 1 + 4 = 5 ,nums = [5] 。
由于只剩下 1 个元素,我们无法继续进行任何操作。

示例 2:

输入:nums = [3,2,6,1,4]
输出:1
解释:我们执行以下操作:
- 删除前两个元素,分数为 3 + 2 = 5 ,nums = [6,1,4] 。
由于下一次操作的分数与前一次不相等,我们无法继续进行任何操作。

提示:

  • 2 <= nums.length <= 100
  • 1 <= nums[i] <= 1000

题目分析:

         这道题主要还是遍历+模拟+数组,题目要求前两个数字的和相等,那我们就可以储存刚开始的前两个值,去依次遍历后面的两个的值,然后求和判等,只要有不等的情况直接跳出循环,return结果即可。需要注意的是,这里循环开始前需要特殊情况判别,当长度等于1的时候直接return 0,等于2的时候直接return 1 ,否则的话进行下面的循环。下面是具体代码实现:

class Solution:
    def maxOperations(self, nums: List[int]) -> int:
        n=len(nums)
        if n<2: return 0
        if n==2: return 1
        s=1
        key=nums[1]+nums[0]
        i=2
        while i<(n-1):
            if key==(nums[i]+nums[i+1]):
                s+=1
                i+=2
            else: break
        return s 

 总结:

这段代码是一个用于计算数组中连续两个数相加结果相等的个数的解法。

  • 首先判断输入数组的长度,如果长度小于2,则直接返回0;如果长度等于2,则返回1。这是为了满足特殊情况的处理。

  • 然后,定义变量s为计数器,初始化为1,表示目前已找到的满足条件的相加结果相等的对数。定义变量key为nums[0]和nums[1]的和,即初始要比较的值。

  • 接着使用while循环遍历数组,从第三个元素(nums[2])开始,每次比较当前元素与下一个元素的和是否等于key值,如果相等,则计数器s加1,继续比较下一对元素;如果不相等,则跳出循环。

  • 最后返回计数器s的值,即为满足条件的相加结果相等的对数。

标签:分数,相等,nums,每日,元素,力扣,数组,操作
From: https://blog.csdn.net/Xxy_1008/article/details/139516569

相关文章

  • 【Unity每日一记】效应器你应该知道是什么吧!五大2D效应器组件
    ......
  • ubuntu 22.04每日自动备份数据库
    自动备份数据库我们将设置一个每天凌晨2:00执行备份的Cron任务。首先确保您已经安装了MySQL服务:sudoaptupdatesudoaptinstallmysql-server创建备份目录:sudomkdir/opt/mysql_backupssudochownmysql:mysql/opt/mysql_backups这里我们创建了一个/op......
  • 每日销售报告自动化_在特定时间(每日 10:00 下午)发送邮件
    从主数据表中提取数据后,我需要在每天下午10:00按特定格式发送每日销售报告。使用示例数据测试google表链接。https://docs.google.com/spreadsheets/d/1nOpdDY6A_-Pz8Zj8lutpli1RDDv1V8Cc4dTgi-DEpks/edit#gid=0在上述工作表中,工作表一"......
  • 每日AIGC最新进展(21):清华大学提出从人体运动和视频中理解人类行为MotionLLM、武汉大
    DiffusionModels专栏文章汇总:入门与实战MotionLLM:UnderstandingHumanBehaviorsfromHumanMotionsandVideos本研究提出了一种名为MotionLLM的新型框架,旨在通过结合视频和运动序列(如SMPL序列)的多模态数据,利用大型语言模型(LLMs)的能力来理解人类行为。与以往只针对视......
  • 力扣刷题记录: 1080. 根到叶路径上的不足节点
        本题是第140场周赛的Q3,LC竞赛分为1806。主要考察递归。我觉得这道题不值这个分。方法一.递归        我们将通过一个节点的“根-叶”路径分解为两部分,一部分为根到其父节点,另一部分为它到叶子节点。前一部分的val值之和是固定的,可以在递归中使用......
  • 力扣:1103. 分糖果 II
    1103.分糖果II排排坐,分糖果。我们买了一些糖果 candies,打算把它们分给排好队的 n=num_people 个小朋友。给第一个小朋友1颗糖果,第二个小朋友2颗,依此类推,直到给最后一个小朋友 n 颗糖果。然后,我们再回到队伍的起点,给第一个小朋友 n +1 颗糖果,第二个小朋友......
  • 力扣每日一题 6/6
    2938.区分黑球与白球[中等]题目:桌子上有 n 个球,每个球的颜色不是黑色,就是白色。给你一个长度为 n 、下标从 0 开始的二进制字符串 s,其中 1 和 0 分别代表黑色和白色的球。在每一步中,你可以选择两个相邻的球并交换它们。返回「将所有黑色球都移到右侧,所有白色球......
  • 6.6每日总结
    可视化第二版本代码留存<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge,chrome=1"><metaname="renderer&q......
  • 每日AIGC最新进展(20):基于树的长视频理解VideoTree、IBM研究院提出AI生成图片生成检测
    DiffusionModels专栏文章汇总:入门与实战VideoTree:AdaptiveTree-basedVideoRepresentationforLLMReasoningonLongVideos本文介绍了一种名为VideoTree的新框架,旨在提高长视频理解任务中的推理能力。VideoTree通过自适应和分层的方法,动态提取与查询相关的视频帧,......
  • 6.5每日总结
    可视化第一版本<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge,chrome=1"><metaname="renderer"co......