2024.3.27力扣(1200-1400)刷题记录

一、2215. 找出两数组的不同

1.排序+双指针。我以为遍历时复很高,所以用的双指针。

class Solution:def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]:#排序+双指针nums1.sort()nums2.sort()ans = [[],[]]a,b,n1,n2 = 0,0,len(nums1),len(nums2)while a<n1 and b<n2:x = nums1[a]y = nums2[b]if a > 0 and nums1[a-1] == x:a += 1continueif b > 0 and nums2[b-1] == y:b += 1continueif x > y:ans[1].append(y)b += 1elif x < y:ans[0].append(x)a += 1else:a += 1b += 1# 将剩余存入while a < n1:x = nums1[a]if a <= 0 or nums1[a-1] != x:ans[0].append(x)a += 1while b < n2:y = nums2[b]if b <= 0 or nums2[b-1] != y:ans[1].append(y)b += 1return ans

2.集合求差。来自题解(. - 力扣(LeetCode))。

class Solution:def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]:# 集合差集return [list(set(nums1)-set(nums2)),list(set(nums2)-set(nums1))]

下段来自chatgpt:

需要注意的是,集合操作的时间复杂度通常是接近 O(1) 的,因为集合内部使用哈希表实现,能够快速进行元素的查找和插入,但在极端情况下可能会达到 O(n)(例如哈希冲突较多的情况)。

3.集合差集+海象运算符。来自题解(. - 力扣(LeetCode))。

class Solution:def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]:# 集合差集+海象运算符return [list((s1 := set(nums1)) - (s2 := set(nums2))),list(s2 - s1)]

下段来自chatgpt:

海象运算符的主要作用是可以在表达式中将计算结果赋值给变量,且在同一表达式中使用这个变量。这样可以避免重复计算相同的表达式,使代码更加简洁和易读。

二、2706. 购买两块巧克力

1.排序

class Solution:def buyChoco(self, prices: List[int], money: int) -> int:# 排序prices.sort()s = prices[0] + prices[1]return money - s if money >= s else money

 2.遍历,求最小和次小。

class Solution:def buyChoco(self, prices: List[int], money: int) -> int:# 遍历,求最小和次小a,b = inf,inffor x in prices:if x < a:a,b = x,aelif x < b:b = xreturn money - a - b if money >= a+b else money

 三、1380. 矩阵中的幸运数

1.遍历,时复O(n*m)。

class Solution:def luckyNumbers (self, matrix: List[List[int]]) -> List[int]:# 遍历# 分别求出每一行的最小值和每一列的最大值# 出现相同元素即为幸运数,因为元素各不相同minList,maxList = [inf]*len(matrix),[0]*len(matrix[0])for i,row in enumerate(matrix):for j,x in enumerate(row):if x < minList[i]:minList[i] = xif x > maxList[j]:maxList[j] = xs1,s2 = set(minList),set(maxList)return list(s1 - (s1 - s2))

参考官方题解方法二(. - 力扣(LeetCode)),对上述求最大小值列表部分代码进行修改。修改后如下:

class Solution:def luckyNumbers (self, matrix: List[List[int]]) -> List[int]:# 遍历,时复O(n*m)# 分别求出每一行的最小值和每一列的最大值# 出现相同元素即为幸运数,因为元素各不相同minList = [min(row) for row in matrix]maxList = [max(col) for col in zip(*matrix)]    #对matrix转置s1,s2 = set(minList),set(maxList)return list(s1 - (s1 - s2))

2.最小值中最大值和最大值中最小值,方法来自评论(. - 力扣(LeetCode))。时复O(n*m)。

class Solution:def luckyNumbers (self, matrix: List[List[int]]) -> List[int]:# 最小值中最大值和最大值中最小值minList = [min(row) for row in matrix]maxList = [max(col) for col in zip(*matrix)]    #对matrix转置a,b = max(minList),min(maxList)return [a] if a==b else []

感谢你看到这里!一起加油吧!

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

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

相关文章

软件接口安全设计规范及审计要点

1.token授权安全设计 2.https传输加密 3.接口调用安全设计 4.日志审计里监控 5.开发测试环境隔离&#xff0c;脱敏处理 6.数据库运维监控审计 项目管理全套资料获取&#xff1a;软件开发全套资料_数字中台建设指南-CSDN博客

Qt实现TFTP Server和 TFTP Client(四)

3.3 Server Server包括下面3个类&#xff1a; ServerSocketTFtpServerTFtpServerWidget 3.3.1 ServerSocket ServerSocket从BaseUdp派生实现write接口. 3.3.1.1 ServerSocket定义 class QUdpSocket; class ServerSocket : public BaseUdp { public:ServerSocket(QUdpSock…

Java 学习和实践笔记(49):用javabean和一维数组的方式来存储表格数据

还是存储下面这个表格的数据&#xff0c;但使用另一种方法来做。 用javabean和一维数组的方法来做&#xff0c;示例代码如下&#xff1a; /*先创建一个类&#xff0c;其实就是创建好一个只有各属性列的空表格*/ class Employees {private int id;private String name;private …

[2021]Zookeeper getAcl命令未授权访问漏洞概述与解决

今天在漏洞扫描的时候蹦出来一个zookeeper的漏洞问题&#xff0c;即使是非zookeeper的节点&#xff0c;或者是非集群内部节点&#xff0c;也可以通过nc扫描2181端口&#xff0c;获取极多的zk信息。关于漏洞的详细描述参考apache zookeeper官方概述&#xff1a;CVE-2018-8012: A…

Self-Consistency Improves Chain of Thought Reasoning in Language Models阅读笔记

论文链接&#xff1a;https://arxiv.org/pdf/2203.11171.pdf 又到了读论文的时间&#xff0c;内心有点疲惫。这几天还是在看CoT的文章&#xff0c;今天这篇是讲如何利用self-consistency&#xff08;自我一致性&#xff09;来改进大语言模型的思维链推理过程。什么是self-cons…

5.4 物联网RK3399项目开发实录-Android开发之编译 Android10.0 固件(wulianjishu666)

物联网项目开发实例&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/11VQMhHfIL9mZhNlls4wmjw?pwd0gfa 4. 编译 Android10.0 固件 4.1. 下载 Android SDK 由于 SDK 较大&#xff0c;可以去下载页面选择云盘下载 Firefly-RK3399_Android10.0_git_20211222.7z&#x…

Android-Handler详解_原理解析

为了方便阅读将文章分为使用篇和源码解析两篇&#xff0c;上一篇已经写了Handler是什么、有什么、怎们用&#xff0c;这一片从源码的角度分析完整流程&#xff0c;看看Handler消息机制到底是啥原理。才疏学浅&#xff0c;如有错误&#xff0c;欢迎指正&#xff0c;多谢。 完整…

标定系列——预备知识-OpenCV中实现Rodrigues变换的函数(二)

标定系列——预备知识-OpenCV中实现Rodrigues变换的函数&#xff08;二&#xff09; 说明记录 说明 简单介绍罗德里格斯变换以及OpenCV中的实现函数 记录

ClickHouse10-ClickHouse中Kafka表引擎

Kafka表引擎也是一种常见的表引擎&#xff0c;在很多大数据量的场景下&#xff0c;会从源通过Kafka将数据输送到ClickHouse&#xff0c;Kafka作为输送的方式&#xff0c;ClickHouse作为存储引擎与查询引擎&#xff0c;大数据量的数据可以得到快速的、高压缩的存储。 Kafka大家…

Ubuntu 配置 kubernetes 学习环境,让外部访问 dashboard

Ubuntu 配置 kubernetes 学习环境 一、安装 1. minikube 首先下载一下 minikube&#xff0c;这是一个单机版的 k8s&#xff0c;只需要有容器环境就可以轻松启动和学习 k8s。 首先你需要有Docker、QEMU、Hyperkit等其中之一的容器环境&#xff0c;以下使用 docker 进行。 对…

【C++】编码规范之可靠性原则

C编码规范中的可靠性原则是确保代码的可读性、可维护性和稳定性&#xff0c;以下是几个小点及其例子&#xff1a; 避免使用全局变量&#xff1a; 如果需要多个变量在全局范围内使用&#xff0c;可用context&#xff08;结构体/类&#xff09;解决耦合性问题 // 不推荐的写法&…

65W智能快充—同为科技桌面PDU插座推荐

近10年&#xff0c;移动设备的智能化、功能化已经完全且紧密的融入到我们的基础生活与工作当中。 在常态化的电子设备的应用中&#xff0c;设备的电力续航以及后续的供电充电就尤为重要。 就目前而言&#xff0c;所有消费电子产品中的输入以及充电的接口&#xff0c;usb-c可以…

酷开科技依托酷开系统用“平台+产品+场景”塑造全屋智能生活!

杰弗里摩尔的“鸿沟理论”中写道&#xff1a;高科技企业推进产品的早期市场和产品被广泛接受的主流市场之间&#xff0c;存在着一条巨大的“鸿沟”。“鸿沟”&#xff0c;指产品吸引早期接纳者后、赢得更多客户前的那段间歇&#xff0c;以及其中可预知和不可预知的阻碍。多数产…

面试中会被问到的GIT问题解答(含答案)

在现代软件开发中&#xff0c;Git已经成为了版本控制系统的事实标准。无论是在个人项目还是大型企业级开发中&#xff0c;Git都是不可或缺的工具。因此&#xff0c;掌握Git的基本操作和高级特性对于软件开发者来说是非常重要的。以下是根据提供的文件内容&#xff0c;总结出的3…

基于Rflysim平台的无人机拦截三维比例导引算法仿真

【后厂村路钢铁侠出品】 一、Rflysim简介 RflySim是一套专为科研和教育打造的Pixhawk /PX4 和MATLAB/Simulink生态系统或工具链&#xff0c;采用基于模型设计&#xff08;Model-Based Design&#xff0c; MBD&#xff09;的思想&#xff0c;可用于无人系统的控制和安全测试。…

如何创建azure pipeline

Azure Pipelines是一种持续集成和持续交付&#xff08;CI/CD&#xff09;工具&#xff0c;可以帮助开发团队自动化构建、测试和部署应用程序。以下是创建Azure Pipeline的步骤&#xff1a; 登录到Azure DevOps&#xff08;https://dev.azure.com/&#xff09;。在Azure DevOps…

区块链食品溯源案例实现(一)

引言&#xff1a; 食品安全问题一直是社会关注的热点&#xff0c;而食品溯源作为解决食品安全问题的重要手段&#xff0c;其重要性不言而喻。传统的食品溯源系统往往存在数据易被篡改、信息不透明等问题&#xff0c;而区块链技术的引入&#xff0c;为食品溯源带来了革命性的变革…

设计模式之装饰模式解析

装饰模式 1&#xff09;概述 1.定义 动态地给一个对象增加一些额外的职责&#xff0c;在增加对象功能时&#xff0c;装饰模式比生成子类实现更为灵活。 2.作用 装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为。 3.结构图 4.角色 Component&#xf…

【React】React 内置 Hook

React 内置 Hook 是一组允许你在函数组件中使用 state 和其他 React 特性的函数。它们极大地扩展了函数组件的功能,使得在无需编写 class 的情况下也能使用 React 的全部功能。以下是一些主要的 React 内置 Hook 的介绍: 1.useState useState 是用于在函数组件中添加状态(…

深入理解 @Transactional 注解在 Spring 中的应用

前言&#xff1a;在 Java 开发中&#xff0c;事务管理是非常重要的一环。Spring 框架提供了Transactional注解来简化事务管理的操作&#xff0c;本文将深入介绍Transactional注解的用法&#xff0c;并结合代码示例进行详细讨论。 1.Transactional 注解简介 Transactional注解是…