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

【LeetCode:2766. 重新放置石块 + 哈希表】

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述
在这里插入图片描述

🍔 目录

    • 🚩 题目链接
    • ⛲ 题目描述
    • 🌟 求解思路&实现代码&运行结果
      • ⚡ 哈希表
        • 🥦 求解思路
        • 🥦 实现代码
        • 🥦 运行结果
    • 💬 共勉

🚩 题目链接

  • 2766. 重新放置石块

⛲ 题目描述

给你一个下标从 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.length <= 105
1 <= moveFrom.length <= 105
moveFrom.length == moveTo.length
1 <= nums[i], moveFrom[i], moveTo[i] <= 109
测试数据保证在进行第 i 步操作时,moveFrom[i] 处至少有一个石块。

🌟 求解思路&实现代码&运行结果


⚡ 哈希表

🥦 求解思路
  1. 该题目的求解思路比较简单,我们可以使用map来记录每一个位置出现的次数,也可以通过有序表treeset来记录元素,既可以去重,又可以保证有序,因为元素个数并不会影响最终的结果(就是题目中说的全部交换)。
  2. 遍历moveFrom和moveTo数组,先获得move的次数,加到to的次数上,最后移除move,注意,如果move和to位置想等,直接跳过即可。
  3. 最后list收集map中所有的key,并对其进行升序排序。
  4. 有了基本的思路,接下来我们就来通过代码来实现一下的解法。
🥦 实现代码
class Solution {public List<Integer> relocateMarbles(int[] nums, int[] moveFrom, int[] moveTo) {List<Integer> ans = new ArrayList<>();int n = moveFrom.length;HashMap<Integer, Integer> map = new HashMap<>();for (int v : nums) {map.put(v, map.getOrDefault(0, v) + 1);}for (int i = 0; i < n; i++) {int move = moveFrom[i], to = moveTo[i];if (move == to)continue;int cnt = map.getOrDefault(0, move);map.put(to, map.getOrDefault(0, to) + cnt);map.remove(move);}for (Map.Entry<Integer, Integer> entry : map.entrySet()) {ans.add(entry.getKey());}Collections.sort(ans);return ans;}
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

相关文章:

【LeetCode:2766. 重新放置石块 + 哈希表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

[C++]类的自动转换和强制类型转换

在C中&#xff0c;类的自动转换&#xff08;也称为隐式转换&#xff09;和强制类型转换&#xff08;显式转换&#xff09;是面向对象编程中处理类型之间转换的两种重要机制。这些转换允许程序员定义如何在不同类型&#xff08;特别是自定义类型&#xff09;之间安全地交换数据。…...

根据鼠标所在位置获取组件拿到 “qt_scrollarea_viewport” 组件的问题

问题起因&#xff1a; 有时候需要鼠标实时所在位置的组件&#xff0c;可以通过如下方法实时获取: QWidget *current_widget QApplication::widgetAt(QCursor().pos()); qDebug() << __FUNCTION__ << current_widget;// 如果是按钮&#xff0c;直接进行转换 QPus…...

深入浅出WebRTC—LossBasedBweV2

WebRTC 同时使用基于丢包的带宽估计算法和基于延迟的带宽估计算法那&#xff0c;能够实现更加全面和准确的带宽评估和控制。基于丢包的带宽估计算法主要依据网络中的丢包情况来动态调整带宽估计&#xff0c;以适应网络状况的变化。本文主要讲解最新 LossBasedBweV2 的实现。 1…...

就业难?誉天Linux云计算架构师涨薪班,不涨薪退学费

2024年&#xff0c;我国高校毕业生人数约为1179 万人&#xff0c;再创历史新高。根据智联招聘今年发布的《大学生就业力调研报告》&#xff0c;可以看到&#xff1a;应届生慢就业、自由职业的比重分别从去年的18.9%、13.2%增长到今年的19.1%、13.7%。 这里我们可以看出&#xf…...

从零开始!Jupyter Notebook的安装教程

目录 一、准备工作二、安装Jupyter Notebook方法一&#xff1a;使用pip安装方法二&#xff1a;使用Anaconda安装 三、配置和使用四、常见问题及解决办法如何解决Jupyter Notebook安装过程中遇到的依赖项无法同步的问题&#xff1f;Jupyter Notebook的配置文件在哪里&#xff0c…...

FastAPI(七十)实战开发《在线课程学习系统》接口开发--留言功能开发

源码见&#xff1a;"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 在之前的文章&#xff1a;FastAPI&#xff08;六十九)实战开发《在线课程学习系统》接口开发--修改密码&#xff0c;这次分享留言功能开发 我们梳理…...

04-数据库MySQL

一、项目要求 二、项目过程介绍 1、新建数据库 2、新建表 3、处理表 1.修改student 表中年龄(sage)字段属性&#xff0c;数据类型由int 改变为smallint 2.为Course表中Cno 课程号字段设置索引,并查看索引 3.为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引&#xf…...

神经网络理论(机器学习)

motivation 如果逻辑回归的特征有很多&#xff0c;会造出现一些列问题&#xff0c;比如&#xff1a; 线性假设的限制&#xff1a; 逻辑回归是基于线性假设的分类模型&#xff0c;即认为特征与输出之间的关系是线性的。如果特征非常多或者特征与输出之间的关系是非线性的&#…...

JNI回调用中不同线程的env无法找到正确的kotlin的class

不同线程都需要通过 JavaVM 获取到的 JNIEnv 指针&#xff0c; 如果有两个线程有两个 env。 其中一个是jni接口自己传过来的&#xff0c;可以正常使用&#xff0c;正常获取kotlin中的class。但是通过 JavaVM 新获取的env 无法找到kotlin的class 1. 确保线程已附加到 JVM 确保…...

免费HTML模板网站汇总

PS&#xff1a;基本上都是可以免费下载使用的&#xff0c;而且有一些是说明了可以用于商用和个人的。部分网站可能需要科学上网才能访问&#xff0c;如无法访问可留言或私信。 1、https://www.tooplate.com/free-templates 2、https://htmlrev.com/ 3、https://html5up.net/ 4、…...

大屏数据看板一般是用什么技术实现的?

我们看到过很多企业都会使用数据看板&#xff0c;那么大屏看板的真正意义是什么呢&#xff1f;难道只是为了好看&#xff1f;答案当然不仅仅是。 大屏看板不仅可以提升公司形象&#xff0c;还可以提升企业的管理层次。对于客户&#xff0c;体现公司实力和品牌形象&#xff0c;…...

在 Kubernetes 中设置 Pod 优先级及其调度策略详解

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…...

Spring框架、02SpringAOP

SpringAOP 日志功能 基本方法 分析代码问题 目前代码存在两个问题 代码耦合性高&#xff1a;业务代码和日志代码耦合在了一起 代码复用性低&#xff1a;日志代码在每个方法都要书写一遍 问题解决方案 使用动态代理&#xff0c;将公共代码抽取出来 JDK动态代理 使用JDK动…...

基于python的网络爬虫爬取天气数据及可视化分析

要创建一个基于Python的网络爬虫来爬取天气数据并进行可视化分析,我们可以采用以下几个步骤来实现: 1. 选择数据源 首先,需要确定一个可靠的天气数据源。常用的有OpenWeatherMap、Weather API、Weatherstack等。这些API通常需要注册并获取一个API密钥(API Key)来使用。 …...

【WPF开发】上位机开发-串口收发

一、引言 在现代工业控制、嵌入式系统等领域&#xff0c;串口通信作为一种常见的通信方式&#xff0c;被广泛应用于各种场景。C#作为一门强大的编程语言&#xff0c;结合Windows Presentation Foundation&#xff08;WPF&#xff09;框架&#xff0c;可以轻松实现串口通信功能…...

ubuntu开启 远程登录 允许root远程登录

如果没有22端口服务 sudo apt update sudo apt install openssh-server sudo ufw allow.ssh sudo passwd root 修改配置文件 sudo vim /etc/ssh/sshd_config Port 22 修改为 Port 22 #PermitRootLogin prohibit-password 修改为 PermitRootLogin yes service ssh restart …...

《昇思25天学习打卡营第23天|RNN实现情感分类》

使用RNN进行情感分类&#xff1a;基于IMDB数据集的LSTM应用 引言 情感分析是自然语言处理&#xff08;NLP&#xff09;中的一个重要应用&#xff0c;广泛用于电影评论、社交媒体等文本数据的情感分类任务。本文将介绍如何使用递归神经网络&#xff08;RNN&#xff09;实现情感…...

机械设计基础B(学习笔记)

绪论 机构&#xff1a;是一些具备各自特点的和具有确定的相对运动的基本组合的统称。 组成机构的各个相对运动部分称为构件。构件作为运动单元&#xff0c;它可以是单一的整体&#xff0c;也可以是由几个最基本的事物&#xff08;通常称为零件&#xff09;组成的刚性结构。 构件…...

MybatisPlusException: Error: Method queryTotal execution error of sql 的报错解决

项目场景&#xff1a; 相关背景&#xff1a; 开发环境 开发系统时 系统页面加载正常 &#xff0c;发布运行环境后运行一段时间&#xff0c;前端页面 突然出现 报错信息&#xff0c; 报错信息如下&#xff1a; MybatisPlusException: Error: Method queryTotal execution erro…...

终极CoreCycler教程:5分钟掌握CPU超频稳定性测试

终极CoreCycler教程&#xff1a;5分钟掌握CPU超频稳定性测试 【免费下载链接】corecycler Script to test single core stability, e.g. for PBO & Curve Optimizer on AMD Ryzen or overclocking/undervolting on Intel processors 项目地址: https://gitcode.com/gh_mi…...

CefFlashBrowser完全指南:2025年畅玩Flash游戏与存档管理终极方案

CefFlashBrowser完全指南&#xff1a;2025年畅玩Flash游戏与存档管理终极方案 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 在Adobe Flash正式退出历史舞台后&#xff0c;无数经典网页游…...

恶意软件分析利器:基于统计特征的二进制模式识别与批量编辑工具

1. 项目概述&#xff1a;一个面向恶意软件分析的“均值”编辑器最近在分析一些PUA&#xff08;潜在不受欢迎应用程序&#xff09;和恶意软件样本时&#xff0c;我经常遇到一个头疼的问题&#xff1a;很多样本为了绕过静态检测&#xff0c;会嵌入大量垃圾代码、花指令&#xff0…...

AzurLaneAutoScript:碧蓝航线玩家的终极自动刷图解决方案

AzurLaneAutoScript&#xff1a;碧蓝航线玩家的终极自动刷图解决方案 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研&#xff0c;全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 还在为…...

Windows文件管理器终极增强:3步实现APK文件原生图标显示

Windows文件管理器终极增强&#xff1a;3步实现APK文件原生图标显示 【免费下载链接】apkshellext Show app icons in windows explorer 项目地址: https://gitcode.com/gh_mirrors/ap/apkshellext 在Windows系统中管理移动应用安装包时&#xff0c;你是否曾为难以区分…...

基于Arduino Yun的DIY无线安防摄像头:运动检测、云端同步与实时流媒体

1. 项目概述与核心价值 手头有个闲置的Arduino Yun和USB摄像头&#xff0c;一直琢磨着怎么把它们利用起来&#xff0c;做个有点意思的东西。市面上那些无线监控摄像头功能是挺全&#xff0c;但总觉得少了点“掌控感”&#xff0c;数据存在哪里、怎么访问&#xff0c;都得听厂家…...

Xiaomusic终极指南:如何通过5个技术模块实现小爱音箱智能音乐播放

Xiaomusic终极指南&#xff1a;如何通过5个技术模块实现小爱音箱智能音乐播放 【免费下载链接】xiaomusic 使用小爱音箱播放音乐&#xff0c;音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 还在为传统音乐播放器的复杂操作和功能…...

Shermie-proxy:基于Node.js的脚本化HTTP/HTTPS代理调试工具实战指南

1. 项目概述与核心价值最近在折腾一些本地开发环境下的网络请求调试和抓包&#xff0c;发现一个挺有意思的开源项目kxg3030/shermie-proxy。这本质上是一个基于 Node.js 实现的 HTTP/HTTPS 代理服务器&#xff0c;但它的定位非常清晰&#xff1a;专为开发者本地调试和网络请求分…...

轻量级推荐系统MiniOneRec:从协同过滤到服务部署的实践指南

1. 项目概述&#xff1a;一个轻量级、高可用的推荐系统引擎在数据驱动的今天&#xff0c;推荐系统早已不是大型互联网公司的专属。无论是电商平台、内容社区&#xff0c;还是企业内部的知识库、工具集&#xff0c;个性化推荐都已成为提升用户体验和业务效率的核心能力。然而&am…...

Snipe-IT终极指南:如何构建企业级IT资产管理系统

Snipe-IT终极指南&#xff1a;如何构建企业级IT资产管理系统 【免费下载链接】snipe-it A free open source IT asset/license management system 项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-it 在当今数字化时代&#xff0c;企业IT资产管理已成为组织运营…...