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

【LeetCode】大厂面试算法真题回忆(36)--相同数字的积木游戏

题目描述

小华和小薇一起通过玩积木游戏学习数学。他们有很多积木,每个积木块上都有一个数字,积木块上的数字可能相同。

小华随机拿一些积木挨着排成一排,请小薇找到这排积木中数字相同且所处位置最远的2块积木块,计算他们的距离。

小薇请你帮忙替她解决这个问题。

输入描述

第一行输入为N,表示小华排成一排的积木总数。

接下来N行每行是一个数字,表示小花排成一排的积木上数字。

其中,取值范围是0 <= 积木上的数字 < 10^9,1 <= 积木长度 <= 10^5

输出描述

相同数字的积木的位置最远距离;如果所有积木数字都不相同,请返回-1。

示例描述

示例一

输入:

5
1
2
3
1
4

输出:

3

示例二

输入:

2
1
2

输出:

-1

解题思路

  1. 创建索引字典,key为积木块上面的数字,value为积木的顺序位置。
  2. 初始化索引字典。
  3. 遍历索引字典中所有的key
    • 如果一个数字上有多个位置,计算最远的位置距离。
    • 获取最远距离。
  4. 返回最远距离,如果都不相同,则返回-1。

解题代码

from collections import defaultdictdef solve_method(nums):idx = defaultdict(list)for i in range(len(nums)):idx[nums[i]].append(i)ans = -1for k in idx.keys():if len(idx[k]) > 1:ans = max(ans, idx[k][-1] - idx[k][0])return ansif __name__ == '__main__':assert solve_method([1, 2, 3, 1, 4]) == 3assert solve_method([1, 2]) == -1
```![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7583da5d4f0145f5a4bcf96db1b6e7b4.png#pic_center)

相关文章:

【LeetCode】大厂面试算法真题回忆(36)--相同数字的积木游戏

题目描述 小华和小薇一起通过玩积木游戏学习数学。他们有很多积木&#xff0c;每个积木块上都有一个数字&#xff0c;积木块上的数字可能相同。 小华随机拿一些积木挨着排成一排&#xff0c;请小薇找到这排积木中数字相同且所处位置最远的2块积木块&#xff0c;计算他们的距离…...

使用Python将视频转化为gif

使用Python将视频转化为gif 一、前言二、准备三、测试 一、前言 最近想把喜欢的视频片段作成gif&#xff0c;就试着用Python做了下&#xff0c;感觉效果还行&#xff0c;这里做个记录。 二、准备 先下载安装对应的库&#xff0c;命令如下&#xff1a; pip install moviepy …...

HTTP长连接与短连接的前世今生

HTTP长连接与短连接的前世今生 大家好&#xff01;作为一名在互联网摸爬滚打多年的开发者&#xff0c;今天想跟大家聊聊HTTP中的长连接和短连接这个话题。 记得我刚入行时&#xff0c;对这些概念一头雾水&#xff0c;希望这篇文章能帮助新入行的朋友少走些弯路。 什么是HTTP…...

批量将 PPT 文档中的图片提取到文件夹

在 PPT 文档中我们可以插入很多的图片来丰富我们的幻灯片页面&#xff0c;但是当我们需要将 PPT 幻灯片中的图片提取出来的时候&#xff0c;会非常的麻烦&#xff0c;因为我们需要打开 PPT 然后将图片保存起来。会非常的耗费我们的时间和精力。今天给大家介绍的就是一种批量将 …...

yolo目标检测算法在DJI上的研究分析(大纲)

yolo目标检测算法在DJI上的研究分析 面向边缘计算的实时目标检测系统设计与部署 第一章 绪论 1.1 研究背景与意义 目标检测技术需求&#xff1a; DJI设备&#xff08;如无人机、摄像头&#xff09;在安防、巡检、农业等场景中的广泛应用现有YOLO算法在高分辨率图像或资源受限…...

图像处理篇:图像预处理——从数据到模型的桥梁

图像预处理是计算机视觉任务中至关重要的一环&#xff0c;它直接影响模型的训练效果和推理性能。无论是深度学习还是传统机器学习&#xff0c;图像预处理都是不可或缺的步骤。本文将深入探讨图像预处理的核心技术、常见方法及其在实际应用中的最佳实践&#xff0c;帮助你从零开…...

MyBatisPlus(SpringBoot版)学习第二讲:基本CRUD

目录 1.BaseMapper 2. 基本CRUD 1. 插入一条记录 2. 删除 1>. 根据ID删除 2>. 根据实体&#xff08;ID&#xff09;删除 3>. 根据columnMap条件删除 4>. 根据entity条件删除 5>. 根据ID批量删除 3. 修改 1>. 根据ID修改 2>. 根据whereEntity条…...

SAP-ABAP:SAP系统架构技术白皮书

SAP系统架构技术白皮书 模块化设计 高性能扩展 智能优化 一、核心架构&#xff1a;三层模型技术解析 架构拓扑图 [用户端] ←HTTP/DIAG→ [应用服务器集群] ←SQL→ [数据库服务器] │ │ └─SAP GUI/Web───┘ 分层技术指标对比 架构层组件构成性能…...

Django REST Framework 请求封装源码解析与实现流程

版本说明&#xff1a; Django: V4.2.20 Django Rest Framework: V3.15.2 一、核心封装流程示意图 #mermaid-svg-qXJLIa9Bx1TCiPSN {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qXJLIa9Bx1TCiPSN .error-icon{fill…...

RK3588开发笔记-buildroot添加telnet服务

目录 前言 一、Telnet服务背景与适用场景 二、telnet服务开启 Busybox 配置 三、固件编译及烧录 RK3588烧录验证 客户端连接测试 3.1 Linux/MacOS连接 3.2 Windows连接 总结 前言 本文主要介绍在RK3588 SDK文件包中添加telnet服务,由于sdk buildroot默认添加的是ssh服…...

基于Spring Boot的企业内管信息化系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

Bitcoin Thunderbolt 内测通道开启,加速比特币交易新时代

比特币作为全球领先的加密货币&#xff0c;一直占据着去中心化金融的核心地位。然而&#xff0c;随着比特币生态的不断扩展&#xff0c;其交易速度和扩容问题逐渐成为制约发展的关键瓶颈。为解决这一难题&#xff0c; 比特币雷电网络&#xff08;Bitcoin Thunderbolt&#xff0…...

STM32 模拟SPI 模式0

SPI 模式 0 的时钟极性&#xff08;CPOL&#xff09;为 0&#xff0c;时钟相位&#xff08;CPHA&#xff09;为 0。CPOL 0 意味着时钟信号空闲时为低电平&#xff0c;CPHA 0 表示在时钟信号的第一个跳变沿&#xff08;上升沿&#xff09;进行数据采样。 #include "stm3…...

QT笔记----QCheckBox

文章目录 概要1、QCheckBox 的基本概念2、单个QCheckBox3、多个QCheckBox同时应用3.1、实现效果3.2、实现Demo 概要 在 Qt 应用程序开发中&#xff0c;QCheckBox 是一个常用的用户界面元素&#xff0c;它允许用户在两种状态&#xff08;选中和未选中&#xff09;之间进行切换&a…...

GR00T N1——英伟达开源的通用人形VLA:类似Helix的快与慢双系统,且可类似ViLLA利用海量的无标注视频做训练

前言 就在昨天3.19日的凌晨&#xff0c;英伟达发布的GR00T N1还是很有含金量的(上午已有好几个朋友私我了)&#xff0c;由此可以看到很多相关工作的影子&#xff0c;比如helix π0 LAPA&#xff0c;具体而言&#xff0c;其具有双系统架构 VLM模块(系统2)通过视觉和语言指令解…...

Bash 脚本基础

一、Bash 脚本基础 什么是 Bash 脚本&#xff1a;Bash 脚本是一种文本文件&#xff0c;其中包含了一系列的命令&#xff0c;这些命令可以被 Bash shell 执行。它用于自动化重复性的任务&#xff0c;提高工作效率。 Bash 脚本的基本结构&#xff1a;以 #!/bin/bash 开头&#x…...

SQLite Delete 语句详解

SQLite Delete 语句详解 SQLite 是一种轻量级的数据库管理系统&#xff0c;广泛应用于移动设备、嵌入式系统和服务器端应用。在数据库管理中&#xff0c;删除数据是一项基本操作。SQLite 提供了强大的删除功能&#xff0c;本文将详细介绍 SQLite 的 Delete 语句及其用法。 1.…...

Mysql深分页的解决方案

在数据量非常大的情况下&#xff0c;深分页查询则变得很常见&#xff0c;深分页会导致MySQL需要扫描大量前面的数据&#xff0c;从而效率低下。例如&#xff0c;使用LIMIT 100000, 10时&#xff0c;MySQL需要扫描前100000条数据才能找到第10000页的数据。 在MySQL中解决深分页…...

数据建模流程: 概念模型>>逻辑模型>>物理模型

数据建模流程 概念模型 概念模型是一种高层次的数据模型&#xff0c;用于描述系统中的关键业务概念及其之间的关系。它主要关注业务需求和数据需求&#xff0c;而不涉及具体的技术实现细节。概念模型通常用于在项目初期帮助业务人员和技术人员达成共识&#xff0c;确保对业务需…...

光谱仪与光谱相机的核心区别与协同应用

一、核心功能与数据维度 ‌光谱仪‌ ‌功能定位‌&#xff1a;专注单点或线状区域的光谱分析&#xff0c;通过色散元件&#xff08;光栅/棱镜&#xff09;分离波长&#xff0c;生成一维或二维光谱曲线&#xff0c;用于量化光强、吸收率等参数‌。 ‌数据维度‌&#xff1a;输…...

路由工程师大纲-2:结合AI技术构建路由拓扑与BGP异常检测的知识链体系

一、领域交叉技术图谱 1. 路由拓扑测绘: 图神经网络(GNN):建模网络结构,预测链路稳定性。复杂网络分析:计算节点中心性(如PageRank)、社区发现(Louvain算法)。可视化工具:Gephi/NetworkX + PyTorch Geometric(图嵌入)。2. BGP异常检测: 时间序列模型:LSTM/Tran…...

运行时智控:PanLang 开发者指南(一)运行时系统核心模块实现——PanLang 原型全栈设计方案与实验性探索5

运行时智控&#xff1a;PanLang 开发者指南&#xff08;一&#xff09;运行时系统核心模块实现——PanLang 原型全栈设计方案与实验性探索5 文章目录 运行时智控&#xff1a;PanLang 开发者指南&#xff08;一&#xff09;运行时系统核心模块实现——PanLang 原型全栈设计方案与…...

再次理解 Spring 中的 IOC、DI、AOP 与多态

目录 引言 1. IOC&#xff08;控制反转&#xff09; 1.1 什么是 IOC&#xff1f; 1.2 IOC 的核心思想 1.3 IOC 的实现 2. DI&#xff08;依赖注入&#xff09; 2.1 什么是 DI&#xff1f; 2.2 DI 的实现方式 2.3 DI 的核心作用 3. AOP&#xff08;面向切面编程&#x…...

rocky linux 与centos系统的区别

Rocky Linux 和 CentOS 都是基于 Red Hat Enterprise Linux&#xff08;RHEL&#xff09;的社区发行版&#xff0c;但两者在目标定位、更新策略和社区管理上有显著差异。以下是核心区别的详细对比&#xff1a; 一、背景与定位 特性Rocky LinuxCentOS起源由 CentOS 联合创始人…...

操作系统导论——第13章 抽象:地址空间

一、早期系统 从内存来看&#xff0c;早期的机器并没有提供多少抽象给用户。基本上&#xff0c;机器的物理内存如图13.1所示 操作系统曾经是一组函数&#xff08;实际上是一个库&#xff09;&#xff0c;在内存中&#xff08;在本例中&#xff0c;从物理地址0开始&#xff09;&…...

C# 调用 VITS,推理模型 将文字转wav音频net8.0 跨平台

一、系统环境 操作系统&#xff1a;win10&#xff0c;win11 运行环境&#xff1a;dotnet8 工具:命令行&#xff0c;powershell 开源库:sherpa-onnx 二、工具和源码下载 开源库:https://k2-fsa.github.io/sherpa/onnx/index.html 运行环境下载 https://dotnet.microsoft.c…...

织梦DedeCMS如何获得在列表和文章页获得顶级或上级栏目名称

获得顶级或二级栏目的名称&#xff0c;都需要修改php文件&#xff0c;修改的文件【/include/common.func.php】将代码插入到这个文件的最下面即可&#xff1b; 一、获得当前文章或栏目的【顶级栏目】名称 1、插入顶级栏目代段 //获取顶级栏目名 function GetTopTypename($id…...

深度学习仓库代码结构认识

规范化深度学习代码仓库的目录结构和文件组织方式&#xff0c;以便于代码的管理、协作和复现性。 一种供参考的目录树结构&#xff1a; . ├── README.md ├── requirements.txt ├── data/ ├── docs/ ├── logs/ └── src/├── configs/│ └── config.y…...

C#基于MVC模式实现TCP三次握手,附带简易日志管理模块

C#基于MVC模式实现TCP三次握手 1 Model1.1 ServerModel1.2 ClientModel1.3 配置参数模块1.4 日志管理模块1.4.1 数据结构1.4.1 日志管理工具类1.4.1 日志视图展示1.4.1.1 UcLogManage.cs1.4.1.2 UcLogManage.Designer.cs 2 视图&#xff08;View&#xff09;2.1 ViewServer2.1.…...

6、linux c 线程 -下

1. 线程的取消 意义 随时终止一个线程的执行。 函数 #include <pthread.h> ​ int pthread_cancel(pthread_t thread); pthread_t thread&#xff1a;要取消的线程 ID。 返回值 成功时返回 0。 失败时返回非零错误码。 注意 线程的取消需要有取消点&#xff0c…...