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

LeetCode-day24-2766. 重新放置石块

LeetCode-day24-2766. 重新放置石块

  • 题目描述
  • 示例
    • 示例1:
    • 示例2:
  • 思路
  • 代码

题目描述

给你一个下标从 0 开始的整数数组 nums ,表示一些石块的初始位置。再给你两个长度 相等 下标从 0 开始的整数数组 moveFrom 和 moveTo 。

在 moveFrom.length 次操作内,你可以改变石块的位置。在第 i 次操作中,你将位置在 moveFrom[i] 的所有石块移到位置 moveTo[i] 。

完成这些操作后,请你按升序返回所有 石块的位置。

注意:

  • 如果一个位置至少有一个石块,我们称这个位置 石块。
  • 一个位置可能会有多个石块。

示例

示例1:

输入:nums = [1,6,7,8], moveFrom = [1,7,2], moveTo = [2,9,5]
输出:[5,6,8,9]
解释:一开始,石块在位置 1,6,7,8 。
第 i = 0 步操作中,我们将位置 1 处的石块移到位置 2 处,位置 2,6,7,8 有石块。
第 i = 1 步操作中,我们将位置 7 处的石块移到位置 9 处,位置 2,6,8,9 有石块。
第 i = 2 步操作中,我们将位置 2 处的石块移到位置 5 处,位置 5,6,8,9 有石块。
最后,至少有一个石块的位置为 [5,6,8,9] 。

示例2:

输入:nums = [1,1,3,3], moveFrom = [1,3], moveTo = [2,2]
输出:[2]
解释:一开始,石块在位置 [1,1,3,3] 。
第 i = 0 步操作中,我们将位置 1 处的石块移到位置 2 处,有石块的位置为 [2,2,3,3] 。
第 i = 1 步操作中,我们将位置 3 处的石块移到位置 2 处,有石块的位置为 [2,2,2,2] 。
由于 2 是唯一有石块的位置,我们返回 [2] 。

思路

哈希集合模拟

  1. 把所有 nums[i] 加到一个哈希集合中。
  2. 遍历 moveFrom 和 moveTo,先把 moveFrom[i]从哈希集合中去掉,然后把 moveTo[i] 加入哈希集合。
  3. 取出哈希集合中的元素,从小到大排序后返回。

代码

class Solution:def relocateMarbles(self, nums: List[int], moveFrom: List[int], moveTo: List[int]) -> List[int]:st = set(nums)for x,y in zip(moveFrom,moveTo):st.remove(x)st.add(y)return sorted(st)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • AV1技术学习:Constrained Directional Enhancement Filter
  • 免费【2024】springboot 趵突泉景区的智慧导游小程序
  • 解决 Android 应用安装错误:INSTALL_FAILED_BAD_PERMISSION_GROUP
  • 网络安全常用易混术语定义与解读(Top 20)
  • Unity 批处理详讲(含URP)
  • 什么品牌的开放式耳机好用?南卡、韶音、cleer 三款主流王炸爆款横评
  • 46 uniApp
  • IPython的剪贴板魔法:%%cpaste命令全攻略
  • 【Gin】精准应用:Gin框架中工厂模式的现代软件开发策略与实施技巧(下)
  • 10 ES6的模板字符串
  • C++笔记5
  • git 操作汇总【迭代更新中】
  • Python爬虫(1) --基础知识
  • Leetcode 2824. 统计和小于目标的下标对数目
  • 04 ES6中对象的简写
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • create-react-app项目添加less配置
  • css选择器
  • express + mock 让前后台并行开发
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • js面向对象
  • Laravel Mix运行时关于es2015报错解决方案
  • React16时代,该用什么姿势写 React ?
  • Transformer-XL: Unleashing the Potential of Attention Models
  • Vue2.0 实现互斥
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 番外篇1:在Windows环境下安装JDK
  • 前端知识点整理(待续)
  • 思否第一天
  • 算法---两个栈实现一个队列
  • 提醒我喝水chrome插件开发指南
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • #微信小程序:微信小程序常见的配置传值
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (libusb) usb口自动刷新
  • (poj1.2.1)1970(筛选法模拟)
  • (TOJ2804)Even? Odd?
  • (黑马C++)L06 重载与继承
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (十六)Flask之蓝图
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • .NET MVC第五章、模型绑定获取表单数据
  • .Net mvc总结
  • .NET NPOI导出Excel详解
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • @Documented注解的作用
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...