LeetCode笔记:Weekly Contest 357

  • LeetCode笔记:Weekly Contest 357
    • 1. 题目一
      • 1. 解题思路
      • 2. 代码实现
    • 2. 题目二
      • 1. 解题思路
      • 2. 代码实现
    • 3. 题目三
      • 1. 解题思路
      • 2. 代码实现
    • 4. 题目四
  • 比赛链接:https://leetcode.com/contest/weekly-contest-357

1. 题目一

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

  • 2810. Faulty Keyboard

1. 解题思路

这一题就是按照题目给出的条件重新转义一下字符串即可,倒是不用怎么多说。

2. 代码实现

给出python代码实现如下:

class Solution:def finalString(self, s: str) -> str:out = ""for ch in s:if ch == "i":out = out[::-1]else:out = out + chreturn out

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

2. 题目二

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

  • 2811. Check if it is Possible to Split Array

1. 解题思路

这一题其实就是个脑筋急转弯,不难想到,事实上,只要存在两个相邻的数加和大于目标值,然后总是存在一种切分方法对数组进行切分。

反之,也不难思考,如果所有相邻元素的加和均小于目标值,那么一定无法将目标数组切分为单一元素的子序列,只要考虑一下连续三个元素的切分即可。

因此,答案事实上就变成一行代码的事了。

2. 代码实现

给出python代码实现如下:

class Solution:def canSplitArray(self, nums: List[int], m: int) -> bool:n = len(nums)return n <= 2 or any(nums[i] + nums[i+1] >= m for i in range(n-1))

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

3. 题目三

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

  • 2812. Find the Safest Path in a Grid

1. 解题思路

这一题我的实现上多少有一些复杂,不过思路上倒是非常清晰的,就是分两步。

第一步求出每一个位置上的safeness factor,这个用一个bfs即可完成。

第二步就是求一条连通路径,使得从起点到终点的safeness factor最大。这个用一个dsu即可实现,我们只需要按照safeness factor对所有的格子进行倒序排序,然后不断地将其进行聚类,直到起点和终点被连通为止,此时的safeness factor就是可以获得的最大的safeness factor。

2. 代码实现

给出python代码实现如下:

class DSU:def __init__(self, n):self.root = {(i,j): (i,j) for i in range(n) for j in range(n)}def find(self, p):if self.root[p] != p:self.root[p] = self.find(self.root[p])return self.root[p]def union(self, a, b):x = self.find(a)y = self.find(b)self.root[y] = xreturnclass Solution:def maximumSafenessFactor(self, grid: List[List[int]]) -> int:n = len(grid)factors = [[0 for _ in range(n)] for _ in range(n)]q = [[i, j, 0] for i in range(n) for j in range(n) if grid[i][j] == 1]seen = {(i, j) for i, j, _ in q}while q:i, j, d = q.pop(0)if i-1 >= 0 and (i-1, j) not in seen:factors[i-1][j] = d+1q.append((i-1, j, d+1))seen.add((i-1, j))if i+1 < n and (i+1, j) not in seen:factors[i+1][j] = d+1q.append((i+1, j, d+1))seen.add((i+1, j))if j-1 >= 0 and (i, j-1) not in seen:factors[i][j-1] = d+1q.append((i, j-1, d+1))seen.add((i, j-1))if j+1 < n and (i, j+1) not in seen:factors[i][j+1] = d+1q.append((i, j+1, d+1))seen.add((i, j+1))dsu = DSU(n)s = sorted([(i, j) for i in range(n) for j in range(n)], key=lambda x: factors[x[0]][x[1]], reverse=True)for i, j in s:if i-1 >= 0 and factors[i-1][j] >= factors[i][j]:dsu.union((i-1, j), (i, j))if i+1 < n and factors[i+1][j] >= factors[i][j]:dsu.union((i+1, j), (i, j))if j-1 >= 0 and factors[i][j-1] >= factors[i][j]:dsu.union((i, j-1), (i, j))if j+1 < n and factors[i][j+1] >= factors[i][j]:dsu.union((i, j+1), (i, j))if dsu.find((0, 0)) == dsu.find((n-1, n-1)):return factors[i][j]return 0

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

4. 题目四

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

  • 2813. Maximum Elegance of a K-Length Subsequence

这一题说来惭愧,实在是没啥思路,看了其他大佬们的一些解答,也没怎么看明白,所以这里就不班门弄斧了,后面有时间我再想想吧,这里就先放弃了……

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

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

相关文章

【C语言进阶】指针的高级应用(下)

文章目录 一、指针数组与数组指针1.1 指针数组与数组指针的表达式 二、函数指针2.1 函数指针的书写方式 三、二重指针与一重指针3.1 二重指针的本质3.2 二重指针的用法3.3 二重指针与数组指针 总结 一、指针数组与数组指针 (1)指针数组的实质是一个数组&#xff0c;这个数组中存…

Linux进程(二)

文章目录 进程&#xff08;二&#xff09;Linux的进程状态R &#xff08;running&#xff09;运行态S &#xff08;sleeping&#xff09;阻塞状态D &#xff08;disk sleep&#xff09;深度睡眠T&#xff08;stopped&#xff09;状态X&#xff08;dead&#xff09;状态Z&#x…

【力扣】21. 合并两个有序链表

以下为力扣官方题解&#xff0c;及本人代码 21. 合并两个有序链表 题目题意示例 1示例 2示例 3提示 官方题解迭代思路算法复杂度 本人代码Java提交结果&#xff1a;通过 题目 题意 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成…

【Linux】【预】配置VSCode阅读和编写Linux驱动的代码环境

配置VSCode阅读和编写Linux驱动代码环境 1. 安装vscode&#xff0c;以及配置vscode环境2. 安装VScode相关的插件3. 配置vscode4.总结 1. 安装vscode&#xff0c;以及配置vscode环境 安装vscode请点击如下连接 https://code.visualstudio.com/download2. 安装VScode相关的插件…

SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--搭建Vue 前端工程[一]

文章目录 SSM--搭建Vue 前端工程--项目基础界面实现功能01-搭建Vue 前端工程需求分析/图解代码实现搭建Vue 前端工程下载node.js LTS 并安装: node.js 的npm创建Vue 项目使用idea 打开ssm_vue 项目, 并配置项目启动 Vue3 项目目录结构梳理Vue3 项目结构介绍 配置Vue 服务端口El…

记一次kernel patch(附开源贡献相关)

文章目录 开源操作系统流程手记smatch能发现的典型问题常见的修复方案附&#xff1a;偶然发现&#xff0c;unlikely函数搞开源贡献的一些捷径 开源操作系统 看了zhihu上的一些科普&#xff0c;明白二次开发是常见现象&#xff0c;套壳、抄袭、自研都不是很科学的说法。中外大厂…

Dockerfile构建mysql

使用dockerfile构建mysql详细教学加案例 Dockerfile 文件 # 使用官方5.6版本&#xff0c;latest为默认版本 FROM mysql:5.6 #复制my.cof至容器内 ADD my.cnf /etc/mysql/my.cof #设置环境变量 密码 ENV MYSQL_ROOT_PASSWORD123456my.cof 文件 [mysqld] character-set-server…

IDEA SpringBoot Maven profiles 配置

IDEA SpringBoot Maven profiles 配置 IDEA版本&#xff1a; IntelliJ IDEA 2022.2.3 注意&#xff1a;切换环境之后务必点击一下刷新&#xff0c;推荐点击耗时更短。 application.yaml spring:profiles:active: env多环境文件名&#xff1a; application-dev.yaml、 applicat…

【MATLAB第63期】基于MATLAB的改进敏感性分析方法IPCC,拥挤距离与皮尔逊系数法结合实现回归与分类预测

【MATLAB第63期】基于MATLAB的改进敏感性分析方法IPCC&#xff0c;拥挤距离与皮尔逊系数法结合实现回归与分类预测 思路 考虑拥挤距离指标与PCC皮尔逊相关系数法相结合&#xff0c;对回归或分类数据进行降维&#xff0c;通过SVM支持向量机交叉验证得到平均指标&#xff0c;来…

基于CentOS 7构建LVS-DR集群

DIPVIPRIPClient192.169.41.139 LVS 192.168.41.134192.169.41.10RS1192.168.41.135RS2192.168.41.138 要求&#xff1a; node4为客户端&#xff0c;node2为LVS&#xff0c;node3和node4为RS。 1.配置DNS解析&#xff08;我这里使用本地解析&#xff09; 192.168.41.134 www.y…

盛最多水的容器 LeetCode热题100

题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 思路 双指针法&#xff0c;一左le…

一、8.分页

当物理内存不够时就把不常用的内存暂时存入磁盘&#xff0c;并且描述符的P位置0&#xff0c;把要使用的段放入内存&#xff0c;描述符P位置1 但是这种方式会产生大量内存碎片&#xff0c;影响内存分配效率 设想一个虚拟内存&#xff0c;每隔任务都有他独立的虚拟内存&#xf…

Node.js-path模块操作路径的基本使用

path模块提供了操作路径的功能&#xff0c;以下为常用的API。 path.resolve()&#xff1a;拼接规范的绝对路径 const path require("path"); // 目录的绝对路径 // __dirname: D:\node\path const pathStr path.resolve(__dirname, "index.html"); // 拼…

golang pprof 监控系列—— cpu 占用率 统计原理

经过前面的几节对pprof的介绍&#xff0c;对pprof统计的原理算是掌握了七八十了&#xff0c;我们对memory,block,mutex,trace,goroutine,threadcreate这些维度的统计原理都进行了分析&#xff0c;但唯独还没有分析pprof 工具是如何统计cpu使用情况的&#xff0c;今天我们来分析…

PostGIS-实时地理数据切片与处理

实时地理数据切片与处理 实时地理数据切片技术 在处理大规模地理矢量数据时,需要解决以下问题: 高效地定位数据位置在数据量过大时进行抽稀以减少返回数据量进行要素的简化以优化显示效果参考: 参考链接 单机部署方案 使用 PostgreSQL-12+PostGIS-3.0 单机方案可实现所有…

[Pytorch]卷积运算conv2d

文章目录 [Pytorch]卷积运算conv2d一.F.Conv2d二.nn.Conv2d三.nn.Conv2d的运算过程 [Pytorch]卷积运算conv2d 一.F.Conv2d torch.nn.functional.Conv2d()的详细参数&#xff1a; conv2d(input: Tensor, weight: Tensor, bias: Optional[Tensor]None, stride: Union[_int, _s…

常见Charles在Windows10抓包乱码问题

废话不多说 直接开整 最近反复安装证书还是乱码 网上各种百度还是不行 首先计算机查看安装好的证书 certmgr.msc 找到并删除掉 重新安装证书 具体解决方法&#xff1a; 第一步&#xff1a;点击 【工具栏–>Proxy–>SSL Proxying Settings…】 第二步&#xff1a;配置…

C++路线(全网20篇高赞文章总结)

为节省时间&#xff0c;可直接跳转到 --> &#x1f33c;干货 目录 &#x1f33c;前言 &#x1f33c;来源 &#x1f416;现状 &#x1f33c;干货 入门阶段 入门项目 学习顺序 &#x1f409;大二打算 &#x1f33c;前言 来源的20篇博客&#xff0c;视频中&#x…

XML约束和解析

文章目录 概述使用场景语法dtd约束Schema约束解析DOM4j&#xff08;重点&#xff09; 概述 可扩展的标记性语言 使用场景 以前: 传输数据的媒介。 例如&#xff1a;微服务架构中&#xff0c;可以用xml文件进行多语言之间的的联系。 现在: 做配置文件 现在作为传输数据的媒介…

sentinel引入CommonFilter类

最近在做一个springcloudAlibaba项目&#xff0c;做链路流控模式时需要将入口资源关闭聚合&#xff0c;做法如下&#xff1a; spring-cloud-alibaba v2.1.1.RELEASE及前&#xff0c;sentinel1.7.0及后&#xff1a; 1.pom 中引入&#xff1a; <dependency><groupId>…