[M思维] lc2808. 使循环数组所有元素相等的最少秒数(思维+哈希表+代码实现)

文章目录

    • 1. 题目来源
    • 2. 题目解析

1. 题目来源

链接:2808. 使循环数组所有元素相等的最少秒数

2. 题目解析

一道比较简单的思维题吧,将一维数组首尾连接变成环,会发现相同元素中间的距离 / 2,就是需要感染的秒数。包括首尾连接的字符也要算下距离。


易错点:

  • 主要是代码实现上,一开始写的版本太复杂,导致边界问题没考虑,出WA。
  • 注意 上取整还是下取整的问题,简单举个例子就知道了。
  • 首尾相同元素距离的问题,分成 0----首, 尾—n 两段,加起来求和即可,常用技巧

  • 时间复杂度 O ( n ) O(n) O(n)
  • 空间复杂度 O ( 1 ) O(1) O(1)

class Solution {
public:int minimumSeconds(vector<int>& nums) {unordered_map<int, vector<int>> mp;int n = nums.size(), res = n;for (int i = 0; i < n; ++i) {mp[nums[i]].push_back(i);}for (auto& pos : mp) {int mx = pos.second[0] + n - pos.second.back();for (int i = 1; i < pos.second.size(); ++i) {mx = max(mx, pos.second[i] - pos.second[i - 1]);}res = min(res, mx / 2);}return res;}
};

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

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

相关文章

linux 脚本 正则表达式

正则表达式 分类 基础正则表达式:BRE 扩展正则表达式:ERE 编程语言支持的高级正则表达式 BRE 和 ERE的语法基本一致&#xff0c;只有部分元字符(预定义好的带有特殊含义的一些符号)需要特殊对待 grep sed 默认使用的基本正则表达式&#xff0c;grep -E,sed -r,egrep,awk使…

zookeeper源码(07)leader、follower和observer

Leader 构造方法 public Leader(QuorumPeer self, LeaderZooKeeperServer zk) throws IOException {this.self self;this.proposalStats new BufferStats();// 获取节点间通信地址Set<InetSocketAddress> addresses;if (self.getQuorumListenOnAllIPs()) {addresses …

ANAPF有源电力滤波器选型计算——安科瑞赵嘉敏

配电系统中谐波电流的计算涉及很多因素。对于改造项目&#xff0c;可使用专业电能质量分析仪测得所需谐波数据&#xff1b;对于新建项目&#xff0c;设计人员并不能直接获得供电系统的的谐波数据&#xff0c;因此&#xff0c;我司研发人员通过众多不同行业、不同类型的项目&…

MySQL原理(二)存储引擎(2)MyISAM

一、MyISAM介绍 1、介绍&#xff1a; MyISAM引擎是MySQL5.5版本之前的数据库所默认的数据表引擎。每一个采用MyISAM引擎的数据表在实际存储中都是由三个文件组成&#xff0c;分别是frm文件保存表的结构&#xff0c;MYD文件保存表的数据、MYI文件保存表的索引&#xff0c;文件…

Android C++生成complier_command.json

Android C 程序开发现状 在 Android 下开发 C 程序&#xff0c;我见过绝大多数人都是不使用任何语法插件&#xff0c;就靠硬写&#xff0c;写完之后再根据编译报错来修改语法错误。这也怪不得程序员&#xff0c;一方面&#xff0c;Android 使用 Arm 平台的 clang 编译器&#x…

JSP仓储管理系统myeclipse定制开发SQLServer数据库网页模式java编程jdbc

一、源码特点 JSP仓储管理系统系统是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库 &#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为SQLServer2008&#x…

扩展学习|一文明晰推荐系统应用开发核心技术发展

文献来源&#xff1a;Lu J, Wu D, Mao M, et al. Recommender system application developments: a survey[J]. Decision support systems, 2015, 74: 12-32. 主题&#xff1a;关于推荐系统应用开发的调查研究 关键词:推荐系统、电子服务个性化、电子商务、电子学习、电子政务 …

除了Adobe之外,还有什么方法可以将Excel转为PDF?

前言 Java是一种广泛使用的编程语言&#xff0c;它在企业级应用开发中发挥着重要作用。而在实际的开发过程中&#xff0c;我们常常需要处理各种数据格式转换的需求。今天小编为大家介绍下如何使用葡萄城公司的的Java API 组件GrapeCity Documents for Excel&#xff08;以下简…

Java递归结构

1.递归是一种常见的算法思路&#xff0c;在很多算法中都会用到。比如&#xff1a;深度优先搜索&#xff08;DFS&#xff09;等。 2.递归的基本思想就是“自己调用自己”。 递归结构包括两个部分&#xff1a; 递归头&#xff1a;什么时候不调用自身方法。如果没有递归头&#…

人机协同的效果并不总能达到预期效果

当前的人工智能技术仍然存在一定的局限性&#xff0c;尤其是在处理复杂的任务或灵活适应环境变化时&#xff0c;往往难以达到人类的水平&#xff0c;还有&#xff0c;人类参与人机协同时可能存在主观意识、情绪波动或偏见等因素&#xff0c;这些因素都可能会影响到人机协同的结…

BL808学习日志-3-DPI-RGB屏幕使用-LVGL D0

一、DPI-RGB驱动 BL808的手册上显示是支持RGB565屏幕显示输出的&#xff0c;但是一直没找到网上的使用例程。且官方的SDK显示也是能够使用的&#xff0c;只是缺少了驱动。这一部分驱动在SIPEED的SDK中已经内置了&#xff0c;今天就是简单的点亮一个800*480 RGB565的屏幕。 二、…

Java基础数据结构之Lambda表达式

一.语法 基本语法&#xff1a;(parameters)->expression或者(parameters)->{statements;} parameters&#xff1a;类似方法中的形参列表&#xff0c;这里的参数是函数式接口里面的参数。这里的参数可以明确说明&#xff0c;也可以不声明而由JVM隐含的推断。当只有一个推…

C++实习报告(集合交,并,差运算的实现)

一、问题描述 1、问题描述 集合元素类型可以是整数、字符串和小数&#xff0c;实现集合的交、并、差运算。 2、功能要求 &#xff08;1&#xff09;用户能够输入两个集合元素&#xff1b; &#xff08;2&#xff09;能够完成集合的交、并、差运算&#xff1b; &#xff08;3&a…

07. STP的基本配置

文章目录 一. 初识STP1.1. STP概述1.2. STP的出现1.3. STP的作用1.4. STP的专业术语1.5. BPDU的报文格式1.6. STP的选择原则&#xff08;1&#xff09;选择根桥网桥原则&#xff08;2&#xff09;选择根端口原则 1.7. 端口状态1.8. STP报文类型1.9. STP的收敛时间 二. 实验专题…

【MySQL 流浪之旅】 第六讲 浅谈 MySQL 锁

系列文章目录 【MySQL 流浪之旅】 第一讲 MySQL 安装【MySQL 流浪之旅】 第二讲 MySQL 基础操作【MySQL 流浪之旅】 第三讲 MySQL 基本工具【MySQL 流浪之旅】 第四讲 MySQL 逻辑备份【MySQL 流浪之旅】 第五讲 数据库设计的三个范式 目录 系列文章目录 一、什么是锁&#x…

07-Nacos-接入Mysql实现持久化

1、默认内嵌的数据库 Derby 存于/data目录 2、扩展仅支持Mysql 5.6.5 执行Nacos中的SQL脚本&#xff0c;该脚本是Nacos-server文件夹中的nacos-mysql.sql 详见 01-Nacos源码打包、部署-CSDN博客 3、修改配置文件 Nacos-server中的conf目录下&#xff0c;application.proper…

【协程报错】TypeError: An asyncio.Future, a coroutine or an awaitable is required

报错语句&#xff1a; loop.run_until_complete(tasks) 改成&#xff1a; loop.run_until_complete(asyncio.wait(tasks))说明&#xff1a; 解决方法&#xff1a;将任务对象封装到asyncio.wait中。这里wait函数的作用是给tasks列表中每一个任务对象赋予一个可被挂起的权限。 …

5种ai智能自动写作,让你的写作效率秒拔高

写作是一项需要耗费大量时间和精力的任务&#xff0c;但现在有了AI智能自动写作软件&#xff0c;我们可以轻松提高写作效率。在国内市场上&#xff0c;有许多优秀的写作软件可供选择。本文将向您推荐5款国内的写作软件&#xff0c;并详细说明每款软件的功能特点。 爱制作AI 使…

小项目:使用MQTT上传温湿度到Onenet服务器

前言 我们之前分别编写了 DHT11、ESP8266 和 MQTT 的代码&#xff0c;现在我们将它们仨整合在一起&#xff0c;来做一个温湿度检测小项目。这个项目可以实时地将 DHT11 传感器获取到的温湿度数据上传到 OneNET 平台。通过登录 OneNET&#xff0c;我们随时随地可以查看温湿度数…

Hive 排名函数ROW_NUMBER、RANK()、DENSE_RANK等功能介绍、对比和举例

目录 1. ROW_NUMBER() 2. RANK() 3. DENSE_RANK() 4. NTILE() 5. CUME_DIST() 6. PERCENT_RANK() 1. ROW_NUMBER() 功能&#xff1a;ROW_NUMBER() 函数为每个分组内的行提供唯一的序列号&#xff0c;从1开始。如果在 OVER() 子句中使用 ORDER BY 语句&#xff0c;它将根据…