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

LeetCode笔记:Biweekly Contest 101

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

1. 题目一

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

  • 2605. Form Smallest Number From Two Digit Arrays

1. 解题思路

这一题中规中矩的,就是一个分类讨论:

  • 如果两个array包含相同的元素,那么答案就是这些相同元素当中最小的;
  • 如果两个array不包含相同的元素,假设两者的最小元素分别是x和y,则答案必然是xy和yx当中的较小数;

2. 代码实现

给出python代码实现如下:

class Solution:def minNumber(self, nums1: List[int], nums2: List[int]) -> int:nums1, nums2 = set(nums1), set(nums2)if len(nums1 & nums2) > 0:return min(nums1 & nums2)else:return min(min(nums1) + 10 * min(nums2), min(nums2) + 10 * min(nums1))

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

2. 题目二

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

  • 2606. Find the Substring With Maximum Cost

1. 解题思路

这一题显然我们可以把每一个字符对应的score给算出来。

然后,我们考察一下累积数组,则任意一个subarray的score都可以用累积数组当中的两数之差来表示。

因此,对以任意位置作为终点的subarray,其能得到的最大值就是当前的值减去之前累积数组的最小值。

遍历以所有的位置最为终点的情况,我们就能获得我们最终的答案。

2. 代码实现

给出python代码实现如下:

class Solution:def maximumCostSubstring(self, s: str, chars: str, vals: List[int]) -> int:score = {ch: ord(ch)-ord('a')+1 for ch in string.ascii_lowercase}for ch, val in zip(chars, vals):score[ch] = vals = [score[ch] for ch in s]s = list(accumulate(s))res = 0_min = 0for x in s:if x < _min:_min = xres = max(res, x-_min)return res

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

3. 题目三

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

  • 2607. Make K-Subarray Sums Equal

1. 解题思路

这一题比较显然的是,要满足题目给定的条件,对于第i个元素和第i+k个元素必然是相等的。

然后,由于array可以循环,因此,我们对k进行深度处理,假设array长度为n,则k需要变成k与n的最大公约数。

此后,我们就可以将array的元素进行分组,然后对每一个组,我们只需要考察将这个组中的元素全部变为相同的数所需要经过的操作数目即可。

2. 代码实现

给出python代码实现如下:

class Solution:def makeSubKSumEqual(self, arr: List[int], k: int) -> int:s = defaultdict(list)n = len(arr)k = math.gcd(n, k)for i, x in enumerate(arr):s[i%k].append(x)def fn(arr):arr = sorted(arr)s = sum(arr)n = len(arr)t = 0res = sfor i, x in enumerate(arr):res = min(res, x*i - t + s-t - x*(n-i))t += xreturn resreturn sum(fn(arr) for arr in s.values())

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

4. 题目四

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

  • 2608. Shortest Cycle in a Graph

1. 解题思路

这一题我的思路还是比较暴力的,就是考察每一个点作为起点的情况下回到起点所需的最小的步数。

这样,遍历完所有的点,我们一定可以找到最小的环。

而对于每一个点如何去找寻最小的回到起点的步数,我们只需要使用一个bfs即可,当某一个点的next step出现在历史路径当中时,对应的最小环长度就是两者距离之和。

2. 代码实现

给出python代码实现如下:

class Solution:def findShortestCycle(self, n: int, edges: List[List[int]]) -> int:graph = defaultdict(list)for u, v in edges:graph[u].append(v)graph[v].append(u)seen = set()res = n+1for u in range(n):q = [(u, -1, 0)]distances = {}loop = Falsewhile (not loop) and q:u, pre, d = q.pop(0)seen.add(u)distances[u] = dfor v in graph[u]:if v in distances:if v == pre:continueres = min(res, d+1 + distances[v])loop = Trueelse:q.append((v, u, d+1))return res if res <= n else -1

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

相关文章:

LeetCode笔记:Biweekly Contest 101

LeetCode笔记&#xff1a;Biweekly Contest 101 1. 题目一 1. 解题思路2. 代码实现 2. 题目二 1. 解题思路2. 代码实现 3. 题目三 1. 解题思路2. 代码实现 4. 题目四 1. 解题思路2. 代码实现 比赛链接&#xff1a;https://leetcode.com/contest/biweekly-contest-101/ 1. 题…...

new和malloc两个函数详细实现与原理分析

1.申请的内存所在位置 new操作符从自由存储区&#xff08;free store&#xff09;上为对象动态分配内存空间&#xff0c;而malloc函数从堆上动态分配内存。自由存储区是C基于new操作符的一个抽象概念&#xff0c;凡是通过new操作符进行内存申请&#xff0c;该内存即为自由存储…...

[ROC-RK3568-PC] [Firefly-Android] 10min带你了解LCD的使用

&#x1f347; 博主主页&#xff1a; 【Systemcall小酒屋】&#x1f347; 博主追寻&#xff1a;热衷于用简单的案例讲述复杂的技术&#xff0c;“假传万卷书&#xff0c;真传一案例”&#xff0c;这是林群院士说过的一句话&#xff0c;另外“成就是最好的老师”&#xff0c;技术…...

【redis】redis分布式锁

目录一、为什么需要分布式锁二、分布式锁的实现方案三、redis分布式锁3.1 简单实现3.2 成熟的实现一、为什么需要分布式锁 1.在java单机服务中&#xff0c;jvm内部有一个全局的锁监视器&#xff0c;只有一个线程能获取到锁&#xff0c;可以实现线程之间的互斥 2.当有多个java服…...

UEditorPlus v3.0.0 接口请求头参数,插入换行优化,若干问题优化

UEditor是由百度开发的所见即所得的开源富文本编辑器&#xff0c;基于MIT开源协议&#xff0c;该富文本编辑器帮助不少网站开发者解决富文本编辑器的难点。 UEditorPlus 是有 ModStart 团队基于 UEditor 二次开发的富文本编辑器&#xff0c;主要做了样式的定制&#xff0c;更符…...

LabVIEW 2015介绍

这里写目录标题LabVIEW 2015安装包LabVIEW 2020安装包Labview2015安装过程1、LabVIEW 2015 的介绍2、LabVIEW 2015 的特点3、LabVIEW 2015 的功能4、LabVIEW 2015 快捷键LabVIEW 2015安装包 链接&#xff1a;https://pan.baidu.com/s/1I1cxtbBkmJbHvDTc5JnOyQ 提取码&#xff1…...

大一被忽悠进了培训班

大家好&#xff0c;我是帅地。 最近我的知识星球开始营业&#xff0c;不少大一大二的小伙伴也是纷纷加入了星球&#xff0c;并且咨询的问题也是五花八门&#xff0c;反正就是&#xff0c;各种迷茫&#xff0c;其中有一个学弟&#xff0c;才大一&#xff0c;就报考培训班&#…...

编写一个存储过程,输入一个日期,判定其距离年底还有多少天

--编写一个存储过程&#xff0c;输入一个日期&#xff0c;判定其距离年底还有多少天 create or replace procedure sp_end(i_date varchar2,o_end out varchar2) is --声明两个变量&#xff0c;v_end存放经过转化的年底日期&#xff0c;v_errm用来存放异常 v_end date; v_errm…...

HTB-Inject

HTB-Inject信息收集开机root信息收集 228080 8080端口如下。 主界面有一个上传图片的功能。 简单测试后发现对上传文件后缀名应该有过滤&#xff0c;只允许jpg后缀名文件上传。将一个内容为”test“的txt文件修改后缀为jpg后上传会出现错误。 验证一下是否存在LFI。 验证一…...

java基础知识——13.类与对象

这篇文章&#xff0c;我们来介绍java中的类与对象 目录 1.面向对象的介绍 2.类的设计与使用 2.1 类和对象 2.1.1 如何定义类 2.2 类的注意事项 3.封装 3.1 private关键字 4.this关键字 5.构造方法 6.标准JavaBean 7.对象内存图 8.成员变量与局部变量 1.面向对象的…...

北邮22信通:(10)第三章 3.2栈的实现

北邮22信通一枚~ 跟随课程进度每周更新数据结构与算法的代码和文章 持续关注作者 解锁更多邮苑信通专属代码~ 上一篇文章&#xff1a; 北邮22信通&#xff1a;&#xff08;9&#xff09;实验1 题目六&#xff1a;模拟内存管理&#xff08;搬运官方代码&#xff09;_青…...

Vue3之使用js实现动画

概述 动画的实现其实不仅可以使用CSS的方式实现&#xff0c;而且还可以使用js的方式实现&#xff0c;二者有啥区别呢&#xff1f;CSS更加注重动画的展现&#xff0c;性能更好&#xff0c;而js的方式性能稍微差点&#xff0c;但是可以在动画执行的每一个过程中做些额外的操作。…...

金三银四,你准备好面试了吗? (附30w字软件测试面试题总结)

不知不觉&#xff0c;已是3月下旬。最近有很多小伙伴都在跟我谈论春招面试的问题&#xff0c;其实对于面试&#xff0c;我也没有太多的经验&#xff0c;只能默默地把之前整理的软件测试面试题分享给Ta。今天就来大致的梳理一下软件测试的面试体系&#xff08;每一部分最后都有相…...

【C语言学习】数组

数组&#xff08;Array&#xff09;就是一些列具有相同类型的数据的集合&#xff0c;这些数据在内存中依次挨着存放&#xff0c;彼此之间没有缝隙。 数组不是C语言的专利&#xff0c;Java、C、C#、JavaScript、PHP 等其他编程语言也有数组。 C语言数组属于构造数据类型。一个…...

ElasticSearch序列 - SpringBoot整合ES:根据指定的 ids 查询

文章目录1. ElasticSearch 根据 ids 查询文档2. SpringBoot整合ES实现 ids 查询1. ElasticSearch 根据 ids 查询文档 ① 索引文档&#xff0c;构造数据 PUT /my_index/_doc/1 {"price":10 }PUT /my_index/_doc/2 {"price":20 }PUT /my_index/_doc/3 {&qu…...

Spark SQL实战(08)-整合Hive

1 整合原理及使用 Apache Spark 是一个快速、可扩展的分布式计算引擎&#xff0c;而 Hive 则是一个数据仓库工具&#xff0c;它提供了数据存储和查询功能。在 Spark 中使用 Hive 可以提高数据处理和查询的效率。 场景 历史原因积累下来的&#xff0c;很多数据原先是采用Hive…...

堆(数据结构系列11)

目录 前言&#xff1a; 1.优先级队列概念 2.堆的概念 3.堆的存储方式 4.堆的创建 5.创建堆的时间复杂度 6.堆的插入和删除 6.1堆的插入 6.2堆的删除 结束语&#xff1a; 前言&#xff1a; 上一次博客中小编主要与大家分享了 二叉树一些相关的知识点和一些练习题&…...

算法训练第四十二天|01背包问题 二维 、01背包问题 一维、416. 分割等和子集

动态规划part0401背包问题 二维01 背包二维dp数组01背包完整c测试代码总结01背包问题 一维一维dp数组&#xff08;滚动数组&#xff09;一维dp01背包完整C测试代码416. 分割等和子集题目描述思路01背包问题总结01背包问题 二维 视频链接&#xff1a;https://www.bilibili.com/…...

Java-如何使用Java将图片和文字拼接在一起(并非是给图片加水印)

之前有遇到一个问题 问题背景&#xff1a;项目中&#xff0c;有一个功能&#xff0c;管理端可以将客户创建的小程序码下载到本地&#xff0c;方便客户将对应门店的小程序码打印出来并张贴到门店&#xff0c;做门店的引流和会员入会。 具体问题&#xff1a;当小程序码的数量较少…...

Metasploit入门到高级【第三章】

来自公粽号&#xff1a;Kali与编程预计更新第一章&#xff1a;Metasploit 简介 Metasploit 是什么Metasploit 的历史和发展Metasploit 的组成部分 第二章&#xff1a;Kali Linux 入门 Kali Linux 简介Kali Linux 安装和配置常用命令和工具介绍 第三章&#xff1a;Metasploi…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用&#xff0c;用户可以通过网页界面上传黑白视频&#xff0c;系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观&#xff0c;不需要了解技术细节。 效果图 ​二、实现思路 总体思路&#xff1a; 用户通过Gradio界面上…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...

Unity VR/MR开发-VR开发与传统3D开发的差异

视频讲解链接&#xff1a;【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...

使用python进行图像处理—图像变换(6)

图像变换是指改变图像的几何形状或空间位置的操作。常见的几何变换包括平移、旋转、缩放、剪切&#xff08;shear&#xff09;以及更复杂的仿射变换和透视变换。这些变换在图像配准、图像校正、创建特效等场景中非常有用。 6.1仿射变换(Affine Transformation) 仿射变换是一种…...

【向量库】Weaviate 搜索与索引技术:从基础概念到性能优化

文章目录 零、概述一、搜索技术分类1. 向量搜索&#xff1a;捕捉语义的智能检索2. 关键字搜索&#xff1a;精确匹配的传统方案3. 混合搜索&#xff1a;语义与精确的双重保障 二、向量检索技术分类1. HNSW索引&#xff1a;大规模数据的高效引擎2. Flat索引&#xff1a;小规模数据…...