【LeetCode周赛】第 386 场周赛

目录

  • 3046. 分割数组 简单
  • 3047. 求交集区域内的最大正方形面积 中等
  • 3048. 标记所有下标的最早秒数 I 中等

3046. 分割数组 简单

3046. 分割数组

分析:
查看数组内有没有重复超过2次的数即可。

代码:

class Solution {
public:
    bool isPossibleToSplit(vector<int>& nums) {
        unordered_map<int,int> m;
        for(int& num : nums){
            m[num]++;
            if(m[num]>2) return false;
        }
        return true;
    }
};


3047. 求交集区域内的最大正方形面积 中等

3047. 求交集区域内的最大正方形面积

分析:
枚举两个正方形,判断是否有交集。
下图为两个存在相交面积的正方形,其对应边的坐标如下图。
在这里插入图片描述

注意:

  • 取得是交集区域内的正方形面积,因此只需要去最小边长即可。
  • 注意没有交集时,最小边长为 0

代码:

class Solution {
public:
    long long largestSquareArea(vector<vector<int>>& bottomLeft, vector<vector<int>>& topRight) {
        int n = bottomLeft.size(),ans=0;
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                int i_b=bottomLeft[i][1],i_l=bottomLeft[i][0],i_t=topRight[i][1],i_r=topRight[i][0];
                int j_b=bottomLeft[j][1],j_l=bottomLeft[j][0],j_t=topRight[j][1],j_r=topRight[j][0];
                int b=max(i_b, j_b),l=max(i_l, j_l),t=min(i_t, j_t),r=min(i_r, j_r);
                ans = max(ans,min(max(t-b, 0), max(r-l, 0)));
            }
        }
        return 1LL*ans*ans;
    }
};


3048. 标记所有下标的最早秒数 I 中等

3048. 标记所有下标的最早秒数 I

分析:
若要判断 m 的时间是否能完成

  • 1、判断1...m是否出现了所有的下标
  • 2、根据每个下标最后出现的先后顺序进行判断,假设前面全是该下标的 nums[i] 减小1,以及先出现的下标的 nums[j] 减小1和 j 的标记,判断该情况下是否能标记。

对于m我们能判断,此时我们可以利用二分来寻找最小的能标记所有下标的秒数。

代码:

class Solution {
public:
    int earliestSecondToMarkIndices(vector<int>& nums, vector<int>& changeIndices) {
        int n=nums.size(), m=changeIndices.size();
        auto check = [&](int k) -> bool{
            int cnt = 0;
            vector<int> index(n,-1);
            for(int i=0;i<k;i++){
                int t = changeIndices[i];
                if(index[t-1]==-1) cnt++;
                index[t-1]=i;
            }
            if(cnt<n) return false;
            vector<pair<int,int>> p;
            for(int i=0;i<n;i++){
                p.push_back({index[i],i});
            }
            sort(p.begin(),p.end(),[](pair<int, int>& a, pair<int, int>& b){
                return a.first < b.first;
            });
            int last = -1, remain = 0;
            for(int i=0;i<n;i++){
                int id = p[i].second, cid = p[i].first, c = nums[id];
                if(cid - last - 1 + remain < c) return false;
                remain = cid - last - 1 + remain - c, last = cid;
            }
            return true;
        };
        int l=1, h=m, ans=-1, mid;
        while(l<=h){
            mid = (l+h)/2;
            if(check(mid)) h=mid-1, ans=mid;
            else l=mid+1;
        }
        return ans;
    }
};


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

类和对象(2)——距离C++又近了一步

目录 一、构造函数 1.1声明和定义构造函数 1.2成员名和参数名 1.3构造函数的使用 1.4初始化列表 二、析构函数 2.1析构函数的概念 2.2析构函数的性质 三、拷贝构造函数 四、赋值运算符重载 4.1运算符重载 4.2赋值运算符重载 一、构造函数 我们知道&#xff0c;C中…

Python:练习:输出int值a占b的百分之几。例如:输入1和4,输出:25%。

案例&#xff1a; 输出int值a占b的百分之几。例如&#xff1a;输入1和4&#xff0c;输出&#xff1a;25%。 思考&#xff1a; 所有的一步步思考&#xff0c;最后综合起来。 首先&#xff0c;确定 输出&#xff0c;那么就用input&#xff0c;而且是int值&#xff0c;所以肯定…

用vivado创建一个赛灵思AXI的IP核

一、新建一个管理IP的任务 二、设置板子&#xff0c;verilog语言和文件位置 三、创建新的IP核 添加一个axi-full的master接口和axi-full的slave接口 四、查看赛灵思AXI代码 第一个是axi的master接口代码&#xff0c;下面的是axi的slave接口代码 五、打包IP核以供后续使用 六、…

请求响应与统一响应结果

1.请求响应 1.安装postman 2.简单的参数 //原始的请求参数的方法RequestMapping("/simoleParam")public String simpleParam(HttpServletRequest request){String name request.getParameter("name");String ageStr request.getParameter("age&quo…

逻辑电路集成块手册

还在查找74XX集成块的数据手册吗,还在找逻辑门电路的手册吗 不用找了,直接打开此电子书,查找就可以了,内部框图,真值表引脚序号都有DOWNLOAD:https://www.ti.com/lit/pdf/scyd013?keyMatchLOGIC%20POCKET%20DATA%20BOOK 失效直接上TI官方网站搜索logic pocket data book即可搜…

【web APIs】5、(学习笔记)有案例!

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、js组成window对象定时器-延迟函数location对象navigator对象histroy对象 二 、本地存储&#xff08;今日重点&#xff09;localStorage&#xff08;重点&am…

FLask会话技术和Flask模板语言

二、FLask会话技术和Flask模板语言 1.会话技术 cookie 客户端的会话技术&#xff1a;让服务器认识浏览器&#xff0c;常用于登录 cookie本身由浏览器保存&#xff0c;通过Response将cookie写到浏览器上&#xff0c;下一次访问&#xff0c;浏览器会根据不同的规则携带cookie过…

【leetcode】链表分割

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家刷题&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 方法1. 不用哨兵位方法2. 用哨兵位 点击查看题目 思路: 将链表分为2个链表list1和list2&#xff0c;…

Cookie、Session和JWT

摘要&#xff1a;Cookie、Session和JWT都不是什么新的技术了&#xff0c;最近用到了就比较和总结下。 我们知道http协议是无状态的&#xff0c;用户登录后如何验证和保存用户状态呢&#xff1f;下面来介绍 1. 使用Cookie和Session验证登录状态 session是保存在服务端的一种数…

【中科院计算所】WSDM 2024冠军方案:基于大模型进行多文档问答

作者&#xff1a;李一鸣 张兆 中科院计算所 会话式多文档问答旨在根据检索到的文档以及上下文对话来回答特定问题。 在本文中&#xff0c;我们介绍了 WSDM Cup 2024 中“对话式多文档 QA”挑战赛的获胜方法&#xff0c;该方法利用了大型语言模型 (LLM) 卓越的自然语言理解和生…

项目解决方案: 实时视频拼接方案介绍

目 录 1、实时视频拼接概述 2、适用场景 3、系统介绍 3.1拼接形式 3.1.1横向拼接 3.1.2纵向拼接 3.2前端选择 3.2.1前端类型 3.2.2推荐配置 3.3后端选择 3.3.1录像回放 3.3.2客户端展示 4、拼接方案介绍 4.1基于4K摄像机的拼接方案 4.1.1系统架构…

安秉源代码加密,不仅可以正常加密,对编译调试无任何影响

源代码防泄密对于很多企业来讲都在使用&#xff0c;特别是在广东一些做智能制造的企业&#xff0c;这些企业在很早就意识到源代码防泄密的重要性&#xff0c;很多企业采用加密的方式对企业的源代码进行加密&#xff0c;也采用了相对应的加密软件&#xff0c;但是在使用一些加密…

Javaweb之SpringBootWeb案例之 SpringBoot原理的详细解析

3. SpringBoot原理 SpringBoot使我们能够集中精力地去关注业务功能的开发&#xff0c;而不用过多地关注框架本身的配置使用。而我们前面所讲解的都是面向应用层面的技术&#xff0c;接下来我们开始学习SpringBoot的原理&#xff0c;这部分内容偏向于底层的原理分析。 在剖析Sp…

P沟道与N沟道MOSFET的基本概念

N沟道与P沟道MOSFET基本原理与区别 学习MOSFET时的简单笔记作为个人总结&#xff0c;仅供学习参考&#xff0c;实际电路设计请直接略过&#xff01;&#xff01;&#xff01; 文章目录 N沟道与P沟道MOSFET基本原理与区别前言一、MOSFET &#xff1f;二、N沟道MOS管原理三、P沟…

老卫带你学---leetcode刷题(130. 被围绕的区域)

130. 被围绕的区域 问题 给你一个 m x n 的矩阵 board &#xff0c;由若干字符 ‘X’ 和 ‘O’ &#xff0c;找到所有被 ‘X’ 围绕的区域&#xff0c;并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。 示例 1&#xff1a; 输入&#xff1a;board [[“X”,“X”,“X”,“X”]…

mitmproxy安装与配置

文章目录 一、mitmproxy的安装二、运行mitmproxy1、配置客户端代理方式一&#xff0c;设置全局代理方式二&#xff0c;设置浏览器代理 2、客户端安装mitmproxy提供的CA证书手工安装步骤&#xff1a;自动安装步骤&#xff1a; mitmproxy是一个免费的开源交互式的HTTPS代理工具。…

放着奥威-用友BI方案不用?糊涂!

放着奥威-用友BI方案不用&#xff0c;自己在那死磕数据可视化报表开发、数据分析报表开发&#xff0c;白白投了大量的人力物力进去&#xff0c;还得不到好效果&#xff0c;比百忙一场还要亏。 奥威-用友BI方案究竟有多优秀&#xff1f; 1、分析快&#xff0c;报表制作快 半个…

嵌入式驱动学习第一周——git的使用

前言 本文主要介绍git的使用&#xff0c;包括介绍git&#xff0c;gitee&#xff0c;以及使用gitee创建仓库并托管代码 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程&#xff0c;未来预计四个月将高强度更新本专栏&#xff0c;喜欢的可以关注本博主并订阅本专栏&#xf…

1.1 编程环境的安装

汇编语言 汇编语言环境部署 第二个运行程序直接双击安装一直下一步即可MASM文件复制到D盘路径下找到dosbox安装路径&#xff1a;C:\Program Files (x86)\DOSBox-0.74找到该文件双击打开它&#xff0c;修改一下窗口大小 把这两行改成如下所示 运行dos&#xff0c;黑框中输入mou…

Dockerfile(4) - RUN 指令详解

RUN 运行命令 shell 形式 命令在 shell 中运行Linux 上默认为 /bin/sh -cWindows 上 cmd /S /C RUN <command> exec 形式 RUN ["executable", "param1", "param2"] 必须双引号&#xff0c;不能是单引号 两种写法的实际栗子 RUN …
最新文章