当前位置: 首页 > news >正文

【LeetCode周赛】LeetCode第362场周赛

LeetCode第362场周赛

  • 与车相交的点
  • 判断能否在给定时间到达单元格
  • 将石头分散到网格图的最少移动次数

与车相交的点

给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。对于任意下标 i,nums[i] = [starti, endi] ,其中 starti 是第 i 辆车的起点,endi 是第 i 辆车的终点。

返回数轴上被车 任意部分 覆盖的整数点的数目。
示例 1:

输入:nums = [[3,6],[1,5],[4,7]]
输出:7
解释:从 1 到 7 的所有点都至少与一辆车相交,因此答案为 7 。

示例 2:

输入:nums = [[1,3],[5,8]]
输出:7
解释:1、2、3、5、6、7、8 共计 7 个点满足至少与一辆车相交,因此答案为7 。

提示:
1 < = n u m s . l e n g t h < = 100 1 <= nums.length <= 100 1<=nums.length<=100
n u m s [ i ] . l e n g t h = = 2 nums[i].length == 2 nums[i].length==2
1 < = s t a r t i < = e n d i < = 100 1 <= starti <= endi <= 100 1<=starti<=endi<=100
分析:
这是一个简单的差分数组题,可以用差分数组求出每一个点被覆盖了多少次,答案就是覆盖次数大于0的点的个数。
代码:

class Solution {
public:int numberOfPoints(vector<vector<int>>& nums) {int a[105];memset(a,0,sizeof(a));for(auto num:nums){a[num[0]]++;a[num[1]+1]--;}int ans=0;for(int i=1;i<=100;i++)a[i]+=a[i-1];for(int i=1;i<=100;i++){if(a[i]>0)ans++;}return ans;}
};

判断能否在给定时间到达单元格

给你四个整数 sx、sy、fx、fy 以及一个 非负整数 t 。
在一个无限的二维网格中,你从单元格 (sx, sy) 开始出发。每一秒,你 必须 移动到任一与之前所处单元格相邻的单元格中。
如果你能在 恰好 t 秒 后到达单元格 (fx, fy) ,返回 true ;否则,返回 false 。
单元格的 相邻单元格 是指该单元格周围与其至少共享一个角的 8 个单元格。你可以多次访问同一个单元格。
示例 1:
在这里插入图片描述

输入:sx = 2, sy = 4, fx = 7, fy = 7, t = 6
输出:true
解释:从单元格 (2, 4)开始出发,穿过上图标注的单元格,可以在恰好 6 秒后到达单元格 (7, 7) 。

示例 2:
在这里插入图片描述

输入:sx = 3, sy = 1, fx = 7, fy = 3, t = 3
输出:false
解释:从单元格 (3, 1)开始出发,穿过上图标注的单元格,至少需要 4 秒后到达单元格 (7, 3) 。 因此,无法在 3 秒后到达单元格 (7, 3)。

提示:
1 < = s x , s y , f x , f y < = 1 0 9 1 <= sx, sy, fx, fy <= 10^9 1<=sx,sy,fx,fy<=109
0 < = t < = 1 0 9 0 <= t <= 10^9 0<=t<=109

分析:
这个题目有一点小坑点,首先,由于可以往八个方向走,因此,最少最少可以用 m a x ( a b s ( s x − f x ) , a b s ( s y − f y ) ) max(abs(sx-fx),abs(sy-fy)) max(abs(sxfx),abs(syfy))步,可以到达指定位置,所以只要t大于等于这个最少步骤,即可满足条件(因为你可以在终点附近一直绕,当绕到相应要求是再去终点即可)。
但是有一个特殊情况,如果起点和终点重合, t = 1 t=1 t=1时,是肯定到不了终点的,因为必须走出去一步,考虑到这一点即可。
代码:

class Solution {
public:bool isReachableAtTime(int sx, int sy, int fx, int fy, int t) {if(sx==fx&&sy==fy){return t!=1;}int minn=max(abs(sx-fx),abs(sy-fy));return t>=minn;}
};

将石头分散到网格图的最少移动次数

给你一个大小为 3 * 3 ,下标从 0 开始的二维整数矩阵 grid ,分别表示每一个格子里石头的数目。网格图中总共恰好有 9 个石头,一个格子里可能会有 多个 石头。

每一次操作中,你可以将一个石头从它当前所在格子移动到一个至少有一条公共边的相邻格子。

请你返回每个格子恰好有一个石头的 最少移动次数 。
示例 1:
在这里插入图片描述

输入:grid = [[1,1,0],[1,1,1],[1,2,1]]
输出:3
解释:让每个格子都有一个石头的一个操作序列为:
1 -将一个石头从格子 (2,1) 移动到 (2,2) 。
2 - 将一个石头从格子 (2,2) 移动到 (1,2) 。
3 - 将一个石头从格子(1,2) 移动到 (0,2) 。 总共需要 3 次操作让每个格子都有一个石头。 让每个格子都有一个石头的最少操作次数为 3 。

示例 2:
在这里插入图片描述

输入:grid = [[1,3,0],[1,0,0],[1,0,3]]
输出:4
解释:让每个格子都有一个石头的一个操作序列为:
1 -将一个石头从格子 (0,1) 移动到 (0,2) 。
2 - 将一个石头从格子 (0,1) 移动到 (1,1) 。
3 - 将一个石头从格子(2,2) 移动到 (1,2) 。 4 - 将一个石头从格子 (2,2) 移动到 (2,1) 。 总共需要 4次操作让每个格子都有一个石头。 让每个格子都有一个石头的最少操作次数为 4 。

提示:
g r i d . l e n g t h = = g r i d [ i ] . l e n g t h = = 3 grid.length == grid[i].length == 3 grid.length==grid[i].length==3
0 < = g r i d [ i ] [ j ] < = 9 0 <= grid[i][j] <= 9 0<=grid[i][j]<=9
g r i d 中元素之和为 9 。 grid 中元素之和为 9 。 grid中元素之和为9

分析:
因为数据范围很小,可以考虑全排列求解。根据题意,可以分析出,只要将所有位置多出来的石头移动到位置石头数为0的地方即可。那么我们可以先存储所有石头多的位置和0石头的位置,对0石头的位置进行全排列,然后依次计算从石头多的位置移动到0石头的位置需要多少步,维护一个最小值即可。
代码:

class Solution {
public:int minimumMoves(vector<vector<int>>& grid) {vector<pair<int,int>>more;//存储多出来的点vector<pair<int,int>>less;//存储少的点,即0点for(int i=0;i<grid.size();i++){for(int j=0;j<grid[i].size();j++){if(grid[i][j]>1){int k=grid[i][j];while(k>1){more.push_back({i,j});k--;}}else if(grid[i][j]==0)less.push_back({i,j});}}//对less全排列,然后计算more和less的距离int ans=1e9;do{int cnt=0;for(int i=0;i<less.size();i++){cnt+=abs(more[i].first-less[i].first)+abs(more[i].second-less[i].second);}ans=min(ans,cnt);}while(next_permutation(less.begin(),less.end()));return ans;}
};

相关文章:

【LeetCode周赛】LeetCode第362场周赛

LeetCode第362场周赛 与车相交的点判断能否在给定时间到达单元格将石头分散到网格图的最少移动次数 与车相交的点 给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。对于任意下标 i&#xff0c;nums[i] [starti, endi] &#xff0c;其中 starti 是第 i…...

Leetcode128. 最长连续序列

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 题解&#…...

K8S:kubeadm搭建K8S+Harbor 私有仓库

文章目录 一.部署规划1.主机规划2.部署流程 二.kubeadm搭建K8S1.环境准备2.安装docker3. 安装kubeadm&#xff0c;kubelet和kubectl4.部署K8S集群&#xff08;1&#xff09;初始化&#xff08;2&#xff09;部署网络插件flannel&#xff08;3&#xff09;创建 pod 资源 5.部署 …...

MaskVO: Self-Supervised Visual Odometry with a Learnable Dynamic Mask 论文阅读

论文信息 题目&#xff1a;MaskVO: Self-Supervised Visual Odometry with a Learnable Dynamic Mask 作者&#xff1a;Weihao Xuan, Ruijie Ren, Siyuan Wu, Changhao Chen 时间&#xff1a;2022 来源&#xff1a; IEEE/SICE International Symposium on System Integration …...

面试求职-面试注意事项

面试技巧和注意事项有哪些&#xff1f; 面试是找工作过程中最重要的一个环节&#xff0c;因为面试成功&#xff0c;你才有可能得到一份工作。求职面试技巧有哪些呢?首先&#xff0c;我们来看看面试注意事项。 企业了解 1、面试前有没有仔细了解过对应企业的情况&#xff0c…...

sm2 签名验签

目前发现 sm2 有很多实现&#xff0c;比如 gmssl, openssl 1.1.1 ,openssl 3.0&#xff0c;各种代码库实现等等。实践中发现这些实现会出现不能互相验签的情况。后续研究一下。 网上的一些资料&#xff0c;给出了一些 openssl 指令&#xff0c;但是没有标明 openssl 的版本&…...

如何检查Windows 11笔记本电脑电池健康状况

如果你拥有一台运行微软最新操作系统的便携式电脑&#xff0c;那么检查Windows 11笔记本电脑的电池健康状况可能很重要。 电池寿命显然是一件大事&#xff0c;无论你是在最好的商务笔记本电脑上工作&#xff0c;还是在目前市场上最好的游戏笔记本电脑上享受马拉松式的Starfiel…...

编程大师-分布式

分布式锁 mysql redis 【IT老齐122】不只setnx&#xff0c;两张图说清Redisson的Redis分布式锁实现_哔哩哔哩_bilibili zk 用这种方式去实现&#xff0c;zookeeper分布式锁&#xff0c;你会吗&#xff1f;_哔哩哔哩_bilibili...

内网隧道代理技术(二十三)之 DNS隧道反弹Shell

DNS隧道反弹Shell DNS隧道 DNS协议是一种请求、应答协议,也是一种可用于应用层的隧道技术。DNS隧道的工作原理很简单,在进行DNS查询时,如果查询的域名不在DNS服务器本机缓存中,就会访问互联网进行查询,然后返回结果。如果在互联网上有一台定制的服务器,那么依靠DNS协议…...

如何利用Socks5代理IP提升网络安全与跨境电商业务

在今天的数字时代&#xff0c;网络安全对于个人和企业来说都至关重要。随着跨境电商和在线游戏等业务的不断发展&#xff0c;保护网络安全变得尤为重要。Socks5代理IP是一项强大的工具&#xff0c;可以帮助您实现更高水平的网络安全&#xff0c;同时促进跨境电商和游戏领域的增…...

信号量(Semaphore)

信号量(Semaphore)是一种经典的多线程同步工具,用于控制多个线程对共享资源的访问。信号量维护了一个计数器,表示可用的资源数量,线程可以通过信号量来请求资源并释放资源。信号量的主要操作包括获取(acquire)资源和释放(release)资源。 Java 中的信号量通常有两种类…...

<el-input-number>显示两位数字;如果是一位数字的话前面补0

可以通过自定义 formatter 函数来实现。具体步骤如下&#xff1a; 在 <el-input-number> 上添加 :formatter 属性&#xff0c;值为 formatter 函数名。 在 methods 中定义 formatter 函数&#xff0c;该函数接收一个参数 value&#xff0c;表示当前输入框中的值。 在 f…...

基于SSM的鲜花商城系统【附源码文档】

基于SSM的鲜花商城系统【附源码文档】 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringSpringMVCMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色&#xff1a;用户、管理员 用户&#xff1a;登录、注册、商品查询、公告预…...

【算法与数据结构】501、LeetCode二叉搜索树中的众数

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;根据前面几篇文章98、LeetCode验证二叉搜索树、530、LeetCode二叉搜索树的最小绝对差。我们知道二叉搜…...

Spring MVC 六 - DispatcherServlet处理请求过程

前面讲过了DispatcherServlet的初始化过程&#xff08;源码角度的DispatcherServlet的具体初始化过程还没说&#xff0c;先放一放&#xff09;&#xff0c;今天说一下DispatcherServlet处理请求的过程。 处理过程 WebApplicationContext绑定在当前request属性上&#xff08;属…...

Python实现猎人猎物优化算法(HPO)优化BP神经网络回归模型(BP神经网络回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…...

【图论】SPFA求负环

算法提高课笔记 文章目录 基础知识例题虫洞题意思路代码 观光奶牛题意思路代码 单词环题意思路代码 基础知识 负环&#xff1a;环上权值之和是负数 求负环的常用方法 基于SPFA 统计每个点入队次数&#xff0c;如果某个点入队n次&#xff0c;则说明存在负环&#xff08;完全…...

vue3中的吸顶导航交互实现 | VueUse插件

目的&#xff1a;浏览器上下滚动时&#xff0c;若距离顶部的滚动距离大于78px&#xff0c;吸顶导航显示&#xff0c;小于78px隐藏。使用vueuse插件中的useScroll方法​​​​​​​和动态类名控制进行实现 1. 安装 npm i vueuse/core 2. 获得滚动距离 项目中导入&#xff0…...

MySql 笔记

数据结构&#xff1a;BTREE 二叉树&#xff1a;顺序增长依次查询效率低 红黑树&#xff1a; 数据多了深度越深&#xff0c;效率自然低了 HASH&#xff1a; 查询条件限制 B-TREE&#xff1a;度&#xff08;degree&#xff09;-节段的数据存储个数&#xff0c;叶节点具有 相…...

部署elasticsearch集群

创建es集群 编写一个docker-compose.yaml文件&#xff0c;内容如下 version: 2.2 services:es01:image: elasticsearch:7.12.1container_name: es01environment:- node.namees01- cluster.namees-docker-cluster- discovery.seed_hostses02,es03- cluster.initial_master_nod…...

7个核心功能彻底改变你的Obsidian笔记视觉体验

7个核心功能彻底改变你的Obsidian笔记视觉体验 【免费下载链接】AnuPpuccin Personal theme for Obsidian 项目地址: https://gitcode.com/gh_mirrors/an/AnuPpuccin 你是否厌倦了Obsidian默认的单调界面&#xff1f;是否在寻找一种能让笔记创作变得更愉悦、更高效的视觉…...

485温湿度传感器Modbus通信避坑指南:从波特率匹配到报文解析(以4800波特率为例)

485温湿度传感器Modbus通信实战&#xff1a;从硬件对接到数据解析全流程 工业现场的数据采集往往从一串看似简单的十六进制代码开始。当您第一次将485温湿度传感器接入系统时&#xff0c;可能会遇到这样的场景&#xff1a;硬件连接无误&#xff0c;指示灯正常闪烁&#xff0c;但…...

基于RAG的Obsidian智能知识库:本地部署与优化实战

1. 项目概述&#xff1a;当知识管理遇上大语言模型 如果你和我一样&#xff0c;是 Obsidian 的深度用户&#xff0c;同时又对大语言模型&#xff08;LLM&#xff09;的智能涌现能力感到着迷&#xff0c;那么你肯定也想过一个问题&#xff1a;能不能让我的知识库“活”起来&…...

win2xcur:Windows光标主题完美移植Linux的格式转换指南

1. 项目概述&#xff1a;从Windows光标到Linux的“翻译官”如果你和我一样&#xff0c;是个在Linux桌面和Windows之间反复横跳的用户&#xff0c;或者你为团队维护着跨平台的开发环境&#xff0c;那你一定遇到过这个不大不小但很恼人的问题&#xff1a;Windows系统上那些精心设…...

亿图脑图高级技能:从思维建模到生产力提升的完整指南

1. 项目概述与核心价值最近在整理个人知识库和项目文档时&#xff0c;我一直在寻找一个能让我思维更清晰、协作更高效的“大脑外挂”。市面上思维导图工具不少&#xff0c;但要么功能臃肿、学习曲线陡峭&#xff0c;要么过于轻量、难以应对复杂的结构化思考。直到我深度体验并拆…...

山东反向旅游推荐“小众秘境古村落”

假期不想挤热门景区&#xff0c;只想寻一处安静古村放空散心&#xff1f;给大家整理山东4 个小众秘境古村落&#xff0c;全程 1-2.5 小时车程&#xff0c;适合近郊自驾、短途出游&#xff0c;原生态氛围拉满&#xff0c;人少景美超适合避峰出行。一、济南长清&#xff5c;方峪古…...

BoxLite-AI:开箱即用的轻量级AI应用容器部署与优化指南

1. 项目概述&#xff1a;BoxLite-AI 是什么&#xff0c;以及它解决了什么问题 最近在折腾本地大模型部署和轻量化应用时&#xff0c;发现了一个挺有意思的项目&#xff0c;叫 BoxLite-AI。乍一看这个名字&#xff0c;可能会联想到“盒子”和“轻量”&#xff0c;没错&#xff0…...

Adafruit Bluefruit LE模块AT命令实战:从BLE透传到Eddystone信标与HID设备开发

1. 项目概述与核心价值如果你正在开发一个需要无线连接功能的物联网设备、可穿戴设备或者创意交互项目&#xff0c;那么蓝牙低功耗&#xff08;BLE&#xff09;技术几乎是一个绕不开的选择。它功耗低、连接快&#xff0c;并且被现代智能手机和电脑广泛支持。然而&#xff0c;直…...

UltraScale架构FPGA功耗优化技术与工程实践

1. UltraScale架构的功耗优化技术全景解析在当今高性能计算和通信领域&#xff0c;功耗已成为FPGA选型的决定性因素之一。Xilinx UltraScale架构通过多层次的创新&#xff0c;在20nm工艺节点上实现了显著的功耗降低。作为深耕FPGA设计十余年的工程师&#xff0c;我将从实际应用…...

提示工程:从AI调教到结构化沟通的系统方法论

1. 项目概述&#xff1a;从“咒语”到“工程”的思维跃迁最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“Hazrat-Ali9/Prompt-Engineering”。乍一看&#xff0c;这名字有点神秘&#xff0c;但点进去你会发现&#xff0c;它其实是一个关于“提示工程”的资源集合。这让我…...