LeetCode笔记:Weekly Contest 334

news/2024/4/19 8:40:40/文章来源:https://blog.csdn.net/codename_cys/article/details/129229559
  • LeetCode笔记:Weekly Contest 334
    • 1. 题目一
      • 1. 解题思路
      • 2. 代码实现
    • 2. 题目二
      • 1. 解题思路
      • 2. 代码实现
    • 3. 题目三
      • 1. 解题思路
      • 2. 代码实现
    • 4. 题目四
      • 1. 解题思路
      • 2. 代码实现
  • 比赛链接:https://leetcode.com/contest/weekly-contest-334

1. 题目一

给出题目一的试题链接如下:

  • 2574. Left and Right Sum Differences

1. 解题思路

这一题用一个累积数组就能够快速求解。

2. 代码实现

给出python代码实现如下:

class Solution:def leftRigthDifference(self, nums: List[int]) -> List[int]:lsum = list(accumulate(nums))s = lsum[-1]res = [abs(x - (s-x+nums[i])) for i, x in enumerate(lsum)]return res

提交代码评测得到:耗时69ms,占用内存14.2MB。

2. 题目二

给出题目二的试题链接如下:

  • 2575. Find the Divisibility Array of a String

1. 解题思路

这一题就是不断地取前i个字符组成的数对m进行求模即可。

2. 代码实现

给出python代码实现如下:

class Solution:def divisibilityArray(self, word: str, m: int) -> List[int]:res = []s = 0for ch in word:s = (s * 10 + int(ch)) % mif s == 0:res.append(1)else:res.append(0)return res

提交代码评测得到:耗时559ms,占用内存23.3MB。

3. 题目三

给出题目三的试题链接如下:

  • 2576. Find the Maximum Number of Marked Indices

1. 解题思路

这一题有一点丢脸,本质上这道题就是排序之后给出一个最大的变换构造,但是居然没构造出来,最后是看了答案之后才想到的构造,简直丢脸到家了。

显然,这道题假设数组长度为n,那么最多可以pick的组数至多为n/2n/2n/2,因此,我们只要令i都来自于前半组,j都来自于后半组,然后greedy地选出对应可能的pair即可。

2. 代码实现

给出python代码实现如下:

class Solution:def maxNumOfMarkedIndices(self, nums: List[int]) -> int:nums = sorted(nums)n = len(nums)i, j = (n-1) // 2, n-1res = 0while i >= 0 and j > (n-1) // 2:if nums[i]*2 > nums[j]:i-= 1continueres += 2i -= 1j -= 1return res   

提交代码评测得到:耗时684ms,占用内存27.9MB。

4. 题目四

给出题目四的试题链接如下:

  • 2577. Minimum Time to Visit a Cell In a Grid

1. 解题思路

这一题思路上倒是不复杂,就是一个广度优先遍历,我们用时间t来作为广度判断,来确定遍历顺序,然后扩展直到终点即可。

这里,我们只需要注意以下几个点:

  1. 如果第一个点周围的位置都无法访问,那么会导致游客无法行动,只能返回-1,反之,游客总可以在两点间游荡来等到下一个点可以访问,因此绝不会出现-1的情况;
  2. 如果某一个点当前无法访问,那么访问该点的时间就是min(2k+t,topen)min(2k+t, t_{open})min(2k+t,topen);
  3. 注意剪枝来优化时间复杂度。

2. 代码实现

给出python代码实现如下:

class Solution:def minimumTime(self, grid: List[List[int]]) -> int:if grid[0][1] > 1 and grid[1][0] > 1:return -1n, m = len(grid), len(grid[0])t_reach = {(0, 0): 0}q = [(grid[0][0], 0, 0)]while q != []:t, x, y = heapq.heappop(q)if t > t_reach.get((x, y), math.inf):continueif (x,y) == (n-1, m-1):return tif x-1 >= 0:nxt = t+1 + 2 * max(0, (grid[x-1][y]-t)//2)if t_reach.get((x-1, y), math.inf) > nxt:heapq.heappush(q, (nxt, x-1, y))t_reach[(x-1, y)] = nxtif x+1 < n:nxt = t+1 + 2 * max(0, (grid[x+1][y]-t)//2)if t_reach.get((x+1, y), math.inf) > nxt:heapq.heappush(q, (nxt, x+1, y))t_reach[(x+1, y)] = nxtif y-1 >= 0:nxt = t+1 + 2 * max(0, (grid[x][y-1]-t)//2)if t_reach.get((x, y-1), math.inf) > nxt:heapq.heappush(q, (nxt, x, y-1))t_reach[(x, y-1)] = nxtif y+1 < m:nxt = t+1 + 2 * max(0, (grid[x][y+1]-t)//2)if t_reach.get((x, y+1), math.inf) > nxt:heapq.heappush(q, (nxt, x, y+1))t_reach[(x, y+1)] = nxtreturn -1

提交代码评测得到:耗时2971ms,占用内存43.5MB。

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

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

相关文章

数据结构入门DAY1

力扣刷题合集&#xff1a;力扣刷题_Sunlightʊə的博客-CSDN博客217.存在重复元素相关题目链接&#xff1a;力扣 - 存在重复元素题目重现给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 &#xff0c;返回 true &#xff1b;如果数组中每个元素互不相同&#xff0c;返…

大数据框架之Hadoop:MapReduce(三)MapReduce框架原理——ReduceTask工作机制

1、ReduceTask工作机制 ReduceTask工作机制&#xff0c;如下图所示。 &#xff08;1&#xff09;Copy阶段&#xff1a;ReduceTask从各个MapTask上远程拷贝一片数据&#xff0c;并针对某一片数据&#xff0c;如果其大小超过一定阈值&#xff0c;则写到磁盘上&#xff0c;否则直…

Active Directory 05 - 初识 AD CS 证书服务

写在最前 如果你是信息安全爱好者&#xff0c;如果你想考一些证书来提升自己的能力&#xff0c;那么欢迎大家来我的 Discord 频道 Northern Bay。邀请链接在这里&#xff1a; https://discord.gg/9XvvuFq9Wb我会提供备考过程中尽可能多的帮助&#xff0c;并分享学习和实践过程…

1029 旧键盘 C++中find函数的使用

题目链接&#xff1a; 一、自己的想法&#xff1a;&#xff08;弱化版双指针&#xff09; 思路为用两个“指针”i, j分别指向原来字符串和实际输入字符串的第一个字符&#xff0c;然后判断i&#xff0c;j所指字符是否一致&#xff0c;若是则i, j同时&#xff0c;若否则将i所指…

【5G RRC】5G系统消息SIB3介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

Windows下命令执行绕过技巧总结(渗透测试专用)

一、连接符1、双引号不要求双引号闭合举例&#xff1a;"who"a"mi" //闭合的 "who"a"mi //不闭合的2、圆括号必须在两边&#xff0c;不能包括中间的字符。举例&#xff1a;((whoami))3、^符号&#xff08;转译符号&#xff09;不可以在结尾&…

Go项目(商品微服务-1)

文章目录简介建表protohandler商品小结简介 商品微服务主要在于表的设计&#xff0c;建哪些表&#xff1f;表之间的关系是怎样的&#xff1f; 主要代码就是 CURD表和字段的设计是一个比较有挑战性的工作&#xff0c;比较难说清楚&#xff0c;也需要经验的积累&#xff0c;这里…

【机器学习笔记】Python基础笔记

目录基础语法加载数据&#xff1a;pd.read_csv查看数据大小&#xff1a;shape浏览数据行字段&#xff1a;columns浏览少量数据&#xff1a;head()浏览数据概要&#xff1a;describe()输出&#xff1a;to_csv基础功能语法缺省值去除缺失值&#xff1a;dropna按行删除&#xff1a…

Paddle配置

目录&#xff1a; 1.激活环境 2.版本选择 突发情况&#xff1a;ModuleNotFoundError: No module named paddle 检验是否安装成功 1.激活环境 Anaconda&#xff1a; conda remove -n paddle --all conda activate paddle 2.版本选择 打开链接&#xff1a;https://www.pa…

基于企业微信应用消息的每日早安推送

基于企业微信应用消息的每日早安推送 第一步&#xff1a;注册企业微信 企业微信注册地址&#xff1a;https://work.weixin.qq.com/wework_admin/register_wx 按照正常流程填写信息即可&#xff0c;个人也可以注册企业微信&#xff0c;不需要公司 注册完成后&#xff0c;登录…

Google Guice 4:Bindings(2)

4 Scopes (实例的作用域&#xff09; 4.1 默认规则&#xff1a;unreuse instance 到目前为止&#xff0c;通过bind().to()和Provides定义的binding&#xff0c;每次需要注入实例对象时&#xff0c;Guice都会创建一个新的实例 // 修改DatabaseTransactionLog&#xff0c;使其打…

Ncvicat 打开sql文件方法

Nacicat打开sql文件时&#xff0c;有比较多的文章介绍可以直接打开&#xff0c;方法介绍的比较多&#xff0c;但是我遇到了一个坑&#xff0c;就是如何配置环境都无法打开。 本机环境&#xff1a; windows10 mysql 5.7.40 Navicat12.1 一、遇到问题情况 1.1、通过navicat…

【python量化】大幅提升预测性能,将NSTransformer用于股价预测

写在前面 NSTransformer模型来自NIPS 2022的一篇paper《Non-stationary Transformers: Exploring the Stationarity in Time Series Forecasting》。NSTransformer的目的主要是为了解决其他方法出现过平稳化处理的问题。其通过提出序列平稳化以及去平稳化注意力机制可以使得模型…

2023年三月份图形化二级打卡试题

活动时间 从2023年3月1日至3月21日&#xff0c;每天一道编程题。 本次打卡的规则如下&#xff1a; 小朋友每天利用10~15分钟做一道编程题&#xff0c;遇到问题就来群内讨论&#xff0c;我来给大家答疑。 小朋友做完题目后&#xff0c;截图到朋友圈打卡并把打卡的截图发到活动群…

【尚硅谷MySQL入门到高级-宋红康】数据库概述

1、为什么要使用数据库 数据的持久化 2、数据库与数据库管理系统 2.1 数据库的相关概念 2.2 数据库与数据库管理系统的关系 3、 MySQL介绍 MySQL从5.7版本直接跳跃发布了8.0版本 &#xff0c;可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强&a…

CXL技术分析

CXL&#xff0c;全称Compute Express Link&#xff0c;该技术由Intel牵头开发用于高性能计算、数据中心&#xff0c;主要解决处理器、加速器和内存之间的cache一致性问题&#xff0c;可消除CPU、专用加速器的计算密集型工作负载的传输瓶颈&#xff0c;显著提升系统性能。 一、…

python的装饰器与设计模式中的装饰器模式

相信很多人在初次接触python中的装饰器时&#xff0c;会跟我一样有个疑问&#xff0c;这跟设计模式中的装饰器模式有什么区别吗&#xff1f;本质上是一样的&#xff0c;都是对现有对象&#xff0c;包括函数或者类的一种扩展。这篇文档将进行对比分析。 python的装饰器 装饰器…

duboo+zookeeper分布式架构入门

分布式 dubbo Zookeeper 分布式系统就是若干独立计算机的集合&#xff08;并且这些计算机之间相互有关联&#xff0c;就像是一台计算机中的C盘F盘等&#xff09;&#xff0c;这些计算对于用户来说就是一个独立的系统。 zookeeper安装 下载地址&#xff1a;Index of /dist/z…

【数据库系统概论】基础知识总结

&#x1f339;作者:云小逸 &#x1f4dd;个人主页:云小逸的主页 &#x1f4dd;Github:云小逸的Github &#x1f91f;motto:要敢于一个人默默的面对自己&#xff0c;强大自己才是核心。不要等到什么都没有了&#xff0c;才下定决心去做。种一颗树&#xff0c;最好的时间是十年前…

C++10:非类型模板参数以及模板的特化

目录 非类型模板参数 模板的特化 模板类的特化 1.全特化 2.偏特化 模板其实还有其他的玩法&#xff0c;比如非类型模板参数以及模板的特化。 非类型模板参数 在记述非类型模板参数前&#xff0c;我们认识一下C中一个比较鸡肋的类&#xff0c;array #include<iostream&g…