[LeetCode周赛复盘] 第 323 场周赛20221211

news2024/11/24 16:54:13

[LeetCode周赛复盘] 第 323 场周赛20221211

    • 一、本周周赛总结
    • 二、 [Easy] 6257. 删除每行中的最大值
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 三、[Medium] 6258. 数组中最长的方波
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 四、[Medium] 6259. 设计内存分配器
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 五、[Hard] 6260. 矩阵查询可获得的最大分数
      • 1. 题目描述![在这里插入图片描述](https://img-blog.csdnimg.cn/fac5a27fd75042c2a31684ec1eb7d311.png)
      • 2. 思路分析
      • 3. 代码实现
    • 六、参考链接

一、本周周赛总结

  • 4发苍蝇呵呵呵呵呵。
  • T1暴力。
  • T2dp。
  • T3暴力。
  • T4离线+堆BFS。
  • 在这里插入图片描述

二、 [Easy] 6257. 删除每行中的最大值

链接: 6257. 删除每行中的最大值

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 比赛时非常麻烦的模拟了,把每个数冒泡出来删除。
  • 实际上对每行排序,然后取每列最大即可。
  • py可以用*展开grid然后zip起来就获得每列。

3. 代码实现

class Solution:
    def deleteGreatestValue(self, g: List[List[int]]) -> int:        
        ans = 0
        for r in g:
            r.sort()
        return sum(max(col) for col in zip(*g))            

三、[Medium] 6258. 数组中最长的方波

链接: 6258. 数组中最长的方波

1. 题目描述

在这里插入图片描述

2. 思路分析

用哈希表存dp。

  • 令f[i]为以i为结尾的方波长度(认可长度1)。
  • 显然f[i] = f[sqrt(i)]+1。
  • 涉及浮点运算不知道稳不稳,反正过了。
  • 忽略开方开销的话,复杂度是log(U),
  • 如果复杂度不想和数值上限相关,需要排序。

  • dp相当于枚举终点,枚举起点的话,可以直接暴力,因为上限会很快增长到溢出。

3. 代码实现

class Solution:
    def longestSquareStreak(self, nums: List[int]) -> int:       
        f = {x:1 for x in nums}
        for i in range(4,max(nums)+1):
            if i in f:
                x = int(i**0.5)
                if x*x == i and x in f:
                    f[i] = f[x] + 1
        ans = max(f.values())
        return ans if ans>=2 else -1     

四、[Medium] 6259. 设计内存分配器

链接: 6259. 设计内存分配器

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 看了下复杂度,直接暴力。

3. 代码实现

class Allocator:

    def __init__(self, n: int):
        self.a = [0]*n

    def allocate(self, size: int, mID: int) -> int:
        cnt = 0
        for i ,v in enumerate(self.a):
            if v:
                cnt = 0
            else:
                cnt += 1
                if cnt == size:
                    self.a[i-cnt+1:i+1] = [mID]*cnt
                    return i-cnt+1
        return -1

    def free(self, mID: int) -> int:
        ans = 0
        for i,v in enumerate(self.a):
            if v == mID:
                self.a[i] = 0
                ans += 1
        return ans

五、[Hard] 6260. 矩阵查询可获得的最大分数

链接: 6260. 矩阵查询可获得的最大分数

1. 题目描述在这里插入图片描述

2. 思路分析

  • 读完题直接贴了个并查集板子,然后没用到:并查集要把点权转化为边权很麻烦。

离线+堆bfs。
  • 题目的询问query实际上limit,即询问:对于limit从左上角开始,能floodfill到的格子个数。
  • 再转换一下:左上角从虚空连接了高度limit的海平面,问能淹几个格子。
  • 那么把询问离线排序,从小到大处理即可。
  • 队列用小顶堆存,含义为:边界的格子最矮值先被淹。
  • 于是只有堆顶小于limit时才需要继续搜索;否则等待海平面上升。

3. 代码实现

DIRS = ((0,1),(0,-1),(1,0),(-1,0))
class Solution:
    def maxPoints(self, g: List[List[int]], q: List[int]) -> List[int]:
        m,n,k = len(g),len(g[0]),len(q)
        ans = [0]*k
        q = sorted((v,i) for i,v in zip(range(k),q))
        def inbound(x,y):
            return 0<=x<m and 0<=y<n        
        pq = [(g[0][0],0,0)]
        g[0][0] = 0
        cur = 0
        for v,i in q:            
            while pq and pq[0][0]<v:
                cur += 1
                _,x,y = heappop(pq)
                for dx,dy in DIRS:
                    a, b = x+dx, y+dy
                    if inbound(a,b) and g[a][b]:             
                        heappush(pq,(g[a][b],a,b))                                              
                        g[a][b] = 0                   
           
            ans[i] = cur
        return ans

六、参考链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/80101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web前端期末大作业【足球网页】学生网页设计作业源码

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

基于C++实现(控制台)单位职工管理系统(数据结构)【100010017】

1需求分析 1.1 问题描述 对单位的职工进行管理&#xff0c; 包括插入、 删除、 查找、 排序等功能。 1.2 问题要求 职工对象数不必很多&#xff0c; 便于一次读入内存&#xff0c; 所有操作不经过内外存交换。 &#xff08;1&#xff09; 由键盘输 入职工对象&#xff0c;…

1564_AURIX_TC275_电压监控寄存器整理

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 1. 如果HSM保护开启了&#xff0c;那么访问修改其他的bit就会导致一个总线错误。 2. SMU中可以配置电压监控的相关alarm是否配置 生效。 这个寄存器是几个欠压阈值的配置&#xff0c;在这…

在Ubuntu中为ROG笔记本安装驱动asusctl

我是在Kubuntu22.04上安装的&#xff0c;系统自带“省电”、“平衡”、“性能”三个电源选项&#xff0c;显卡模式切换是拿nvidia驱动切换的&#xff0c;所以目前装的这个驱动我只用到了灯光调节功能。 文章目录介绍安装安装asusctl卸载显卡模式切换驱动supergfxctl使用方法启用…

LwIP——无操作系统启动流程

目录 启动流程 虚拟网卡控制块 发送流程 接收流程 总结 启动流程 通过阅读正点原子的无操作系统移植工程的源码&#xff0c;可以总结出LwIP的无操作系统的启动流程。 前面一些都是基于其他的外设的初始化&#xff0c;我们只关心这里lwip_comm_init()&#xff0c;这个函数的…

eve-ng ubuntu 20.04 设置iptables

eve-ng ubuntu 20.04 设置iptables一、设置方法1、建立iptables规则开机加载脚本2、建立iptables规则关机/重启保存脚本3、添加可执行权限4、保存当前iptables规则到配置文件二、命令解释一、设置方法 1、建立iptables规则开机加载脚本 sudo vi /etc/network/if-pre-up.d/ipt…

(十一)Vue之条件渲染

文章目录v-if与v-else-if、v-else一起使用v-show关于 <template>标签Vue学习目录 上一篇&#xff1a;&#xff08;十&#xff09;Vue之绑定样式 v-if v-if&#xff0c;默认为true&#xff0c;如果为false&#xff0c;底层实现是直接把这个节点删除 适用于&#xff1a;…

MLE,MAP,经验风险最小化,结构风险最小化,邻域风险最小化

文章目录Maximun likelihood extimationMaximum A Posterior EstimationVicinal Risk Minimization, VRMMaximun likelihood extimation 最大似然估计:样本->参数,完全相信观测到的数据,最优可能产生这些看到的数据的模型就是最理想的模型. 频率学派认为,参数是一个常数,不…

fpga实操训练(基础)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 之前我们虽然说过怎么编写verilog代码&#xff0c;怎么用iverilog软件和gtkwave软件进行仿真验证&#xff0c;但是一直没有说明如何在真实的板子上…

web前端期末大作业——基于HTML+CSS+JavaScript仿蘑菇街时尚服装购物商城

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

28个你应该知道的JavaScript技巧

今天我将分享一些Javascript中的常用技巧&#xff0c;以帮助您解决问题。设置过程中的常见问题更快更容易。 01、Javascript 反向字符串 下面是代码&#xff1a; /*niemvuilaptrinh.com*/const stringReverse str > str.split("").reverse().join("")…

搜索引擎项目测试报告

目录单元测试构建索引模块文档信息对象Document的构建的单元测试**针对每一篇文档进行分析、处理、分词**针对文档内容提取关键字的测试&#xff08;正则表达式&#xff09;测试去掉script测试去掉标签完整测试Document类中的parseContent方法关于ansj分词器的测试关于构建倒排…

CleanMyMac4.12.2最新免费的macOS电脑清理工具

相信不少的小伙伴都在用苹果电脑&#xff0c;不论是 iMac&#xff0c;还是 MacBook&#xff0c;用着用着电脑就变慢了。这通病与苹果电脑的性能无关&#xff0c;主要是硬盘空间不足的问题&#xff01;当然你可以在购买电脑的时候就把硬盘升级&#xff0c;但主要的问题是 – 没有…

python代码圣诞树你还没有嘛?所有画法都在这篇文章里拉~

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~ 今天&#xff0c;我就来给大家分享一下python制作的几种圣诞树吧~ 一&#xff1a;唯美圣诞 代码展示 导入模块 完整源码点击领取即可 import turtle as t from turtle import * import random as r import time n 100.0spee…

【JavaWeb】Tomcat的入门使用

1Tomcat的相关概念: Tomcat是Apache软件基金会一个核心项目&#xff0c;是一个开源免费的轻量级Web服务器&#xff0c;支持Servlet/JSP少量JavaEE规范。 概念中提到了JavaEE规范&#xff0c;那什么又是JavaEE规范呢? JavaEE: Java Enterprise Edition,Java企业版。指Java企业…

5年Java开发干到月薪38k?当初实习期2.5k的苦我也吃过...

每一个能在所属行业中成为佼佼者的人&#xff0c;一定都会有他自己的独到的见解以及成长方法......这个观点我非常认同&#xff0c;我不自诩自己是个大佬&#xff0c;但现在也算是做出了头&#xff0c;我从刚毕业做 Java 实习生月薪 2.5k&#xff0c;到现在干了 5 年 Java 开发…

仿雷速体育app踢足球tab

MyTabLayout MyTabLayout用法参照BaseLibrary的Demo GitHub仓库地址 效果图 引入 gradle allprojects {repositories {maven { url https://jitpack.io }} }implementation com.github.DL-ZhangTeng:BaseLibrary:2.3.0属性 MyTabLayout属性名描述&#xff1a;可参考原生控…

Chat GPT使用体验,它真的好厉害!!!

最近的chat GTP很火&#xff0c;起因是OpenAI发布了一个全新的聊天机器人模型。就连马斯克也在感叹“很多人疯狂地陷入了 ChatGPT 循环中”&#xff0c;“ChatGPT 好得吓人&#xff0c;我们离强大到危险的人工智能不远了”。 官方的介绍是&#xff0c;这一模型可以与人类进行谈…

人类特有本能:保护族群老弱病残

人有哪些特有的本能&#xff1f; - 知乎 对于动物群体来说&#xff0c;受伤了就不管了&#xff0c;自生自灭。对于人类来说&#xff0c;受伤了尽量照顾恢复。这看起来吃亏&#xff0c;实际上划算。一个成年人&#xff0c;长大需要20年&#xff0c;受伤恢复只要3个月。 远方青木…

全新CorelDRAW2023最新版矢量图软件功能简介

CorelDRAW2023简介 &#xff1a;设计绘画 CorelDraw 是一个绘图与排版的软件&#xff0c;它广泛地应用于商标设计、标志制作、模型绘制、插图描画、排版及分色输出等诸多领域。 作为一个强大的绘图软件&#xff0c;它被喜爱的程度可用下面的事实说明&#xff1a;用作商业设计和…