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

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

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

难度: 中等

题目大意:

给你一个下标从 0 开始长度为 n 的数组 nums

每一秒,你可以对数组执行以下操作:

  • 对于范围在 [0, n - 1] 内的每一个下标 i ,将 nums[i] 替换成 nums[i]nums[(i - 1 + n) % n] 或者 nums[(i + 1) % n] 三者之一。

注意,所有元素会被同时替换。

请你返回将数组 nums 中所有元素变成相等元素所需要的 最少 秒数。

提示:

  • 1 <= n == nums.length <= 10^5
  • 1 <= nums[i] <= 10^9

示例 1:

输入:nums = [1,2,1,2]
输出:1
解释:我们可以在 1 秒内将数组变成相等元素:
- 第 1 秒,将每个位置的元素分别变为 [nums[3],nums[1],nums[3],nums[3]] 。变化后,nums = [2,2,2,2] 。
1 秒是将数组变成相等元素所需要的最少秒数。

分析

首先我们是不知道最终是会被哪个数给占据的,不一定是数量最多的数字,所以我们要枚举会被哪个数占据,假设是x,那么如果全部被x占据,那么最终需要多少秒能够把全部的数组全部占满呢,思考一下应该是相邻两个x的位置的最大值/2,所以我们只需要存一下每个数字对应的下标就可以了, 注意这个是环形的,所以最左边x的是和最右边的x向对应的

哈希表 + 枚举

class Solution {
public:int minimumSeconds(vector<int>& nums) {int n = nums.size();unordered_map<int, vector<int>> pos;for (int i = 0; i < n; i ++) {int x = nums[i];pos[x].push_back(i);}int res = 1e9;for (auto& [_, p] : pos) {int locmx = p[0] + n - p.back(); // 最左侧和最右侧的数字for (int i = 1; i < p.size(); i ++) {locmx = max(locmx, p[i] - p[i - 1]);}res = min(res, locmx >> 1);}return res;}
};

时间复杂度: O ( n ) O(n) O(n)

结束了

相关文章:

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

2808. 使循环数组所有元素相等的最少秒数 难度: 中等 题目大意&#xff1a; 给你一个下标从 0 开始长度为 n 的数组 nums 。 每一秒&#xff0c;你可以对数组执行以下操作&#xff1a; 对于范围在 [0, n - 1] 内的每一个下标 i &#xff0c;将 nums[i] 替换成 nums[i] &…...

Qt|大小端数据转换

后面打算写Qt关于网络编程的博客&#xff0c;网络编程就绕不开字节流数据传输&#xff0c;字节流数据的传输一般是根据协议来定义对应的报文该如何组包&#xff0c;那这就必然牵扯到了大端字节序和小端字节序的问题了。不清楚的大小端的可以看一下相关资料&#xff1a;大小端模…...

禅道添加自定义字段

1&#xff0c;数据库表 zt_story 添加自定义字段 bakDate1&#xff0c;bakDate2&#xff0c;bakDate3&#xff0c;bakDate4 2&#xff0c;在 /opt/lampp/htdocs/zentaopms/extension/custom/story/ext/config 中添加bakDate.php文件 <?php $config->story->datatab…...

蓝桥杯2024/1/26笔记-----基于PCF8591的电压采集装置

功能实现要求&#xff1a; 每次建好工程文件夹&#xff0c;里边包含User&#xff08;放工程文件&#xff0c;mian.c&#xff0c;可以在这里写如同我这个文章的文本文档&#xff09;、Driver&#xff08;存放底层文件如Led.c&#xff0c;Led.h等&#xff09; 新建的工程先搭建框…...

【一】esp32芯片开发板环境搭建

1、esp32的源码在github上的地址 不同的芯片支持的源码版本不一样&#xff0c;需要根据自己的实际的esp32开发板的芯片下载不用版本的代码 esp32支持多种开发方式&#xff0c;如arduino&#xff0c;ESP-IDF等。官方推荐使用idf开发&#xff0c;ESP-IDF 是乐鑫官方推出的物联网开…...

PyTorch2ONNX-分类模型:速度比较(固定维度、动态维度)、精度比较

图像分类模型部署: PyTorch -> ONNX 1. 模型部署介绍 1.1 人工智能开发部署全流程 #mermaid-svg-bAJun9u4XeSykIbg {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-bAJun9u4XeSykIbg .error-icon{fill:#552222;}…...

Docker命令快车道:一票通往高效开发之旅

欢迎登上 Docker 命令快车&#xff01;在这趟旅程中&#xff0c;你不仅会学会如何驾驭 Docker 这辆神奇的车&#xff0c;还会发现如何让你的开发旅程变得更加轻松愉快。现在&#xff0c;请系好安全带&#xff0c;我们即将出发&#xff01; Docker 是什么 Docker 就像是一辆超…...

IP类接口大全,含免费次数

IP查询 IP归属地-IPv4高精版&#xff1a;根据IP地址查询归属地信息&#xff0c;支持到中国地区&#xff08;不含港台地区&#xff09;街道级别&#xff0c;包含国家、省、市、区县、详细地址和运营商等信息。IP归属地-IPv4区县级&#xff1a;根据IP地址查询归属地信息&#xf…...

LLMs 的记忆和信息检索服务器 Motorhead

LLMs 的记忆和信息检索服务器 Motorhead 1. 为什么使用 Motorhead&#xff1f;2. 通过 Docker 启动 Motorhead3. Github 地址4. python 使用示例地址 1. 为什么使用 Motorhead&#xff1f; 使用 LLMs构建聊天应用程序时&#xff0c;每次都必须构建记忆处理。Motorhead是协助该…...

vue3项目中让echarts适应div的大小变化,跟随div的大小改变图表大小

目录如下 我的项目环境如下利用element-resize-detector插件监听元素大小变化element-resize-detector插件的用法完整代码如下&#xff1a;结果如下 在做项目的时候&#xff0c;经常会使用到echarts&#xff0c;特别是在做一些大屏项目的时候。有时候我们是需要根据div的大小改…...

springboot启动异常

Error creating bean with name ‘dataSource’ org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name dataSource: Unsatisfied dependency expressed through field basicProperties; nested exception is org.springframew…...

直播主播之互动率与促单

直播互动率是衡量直播间观众参与度的重要指标&#xff0c;通常指的是直播间的观众点赞、评论以及转发的数量。互动率越高&#xff0c;表明观众参与度越高&#xff0c;直播间的人气值也相应越高。 为了提升直播互动率&#xff0c;主播可以采取以下策略: 1.积极引导观众参与互动…...

Android 基础技术——Bitmap

笔者希望做一个系列&#xff0c;整理 Android 基础技术&#xff0c;本章是关于 Bitmap Bitmap 内存如何计算 占用内存 宽 * 缩放比例 * 高 * 缩放比例 * 每个像素所占字节 缩放比例 设备dpi/图片所在目录的dpi Bitmap加载优化&#xff1f;不改变图片质量的情况下怎么优化&am…...

数据结构奇妙旅程之七大排序

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …...

【JavaScript】Generator

MDN-Generator Generator对象由生成器函数返回&#xff0c;并且它符合可迭代协议和迭代器协议。 Generator-核心语法 核心语法: 定义生成器函数获取generator对象yield表达式的使用通过for of获取每一个yield的值 // 1. 通过function* 创建生成器函数 function* foo() {//…...

河南省考后天网上确认,请提前准备证件照哦

✔报名时间&#xff1a;2024年1月18号一1月24号 ✔报名确认和缴费&#xff1a;2024年1月 31号一2月4号 ✔准考证打印&#xff1a;2024年3月12号一3月17号 ✔笔试时间&#xff1a;2024年3月16日-2024年3月17日。 ✔面试时间&#xff1a;面试时间拟安排在2024年5月中旬 报名网址&…...

【前端】防抖和节流

防抖 防抖用于限制连续触发的事件的执行频率。当一个事件被触发时,防抖会延迟一定的时间执行对应的处理函数。如果在延迟时间内再次触发了同样的事件,那么之前的延迟执行将被取消,重新开始计时。 总结:在单位时间内频繁触发事件,只有最后一次生效 场景 :用户在输入框输…...

【网络】:网络套接字(UDP)

网络套接字 一.网络字节序二.端口号三.socket1.常见的API2.封装UdpSocket 四.地址转换函数 网络通信的本质就是进程间通信。 一.网络字节序 我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分, 磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小端之分,网…...

Linux编程 1/2 数据结构

数据结构: 程序 数据结构 算法 1.数据结构: 1.时间复杂度: 数据量的增长与程序运行时间增长所呈现的比例函数,则称为时间渐进复杂度函数简称时间复杂度 O(c) > O(logn)> O(n) > O(nlogn) > O(n^2) > O(n^3) > O(2^n) 2.空间复杂度: 2.类…...

【UE Niagara】实现闪电粒子效果的两种方式

目录 效果 步骤 方式一&#xff08;网格体渲染器&#xff09; &#xff08;1&#xff09;添加网格体渲染器 &#xff08;2&#xff09;修改粒子显示方向 &#xff08;3&#xff09;添加从上到下逐渐显现的效果 &#xff08;4&#xff09;粒子颜色变化 方式二&#xff0…...

除了浏览器点一点,Oracle 19c EM Express还能这么用?几个提升DBA效率的隐藏技巧

Oracle 19c EM Express高阶应用&#xff1a;解锁DBA效率提升的五大隐藏技巧 当你已经能够熟练地通过浏览器访问Oracle 19c EM Express时&#xff0c;是否思考过这个轻量级管理工具还能为你带来哪些惊喜&#xff1f;本文将带你超越基础操作&#xff0c;探索那些被大多数DBA忽略的…...

DNS区域传送漏洞详解:从原理到防御(以Bind9为例)

DNS区域传送漏洞深度解析与BIND9安全加固实战指南 当你在浏览器输入一个网址时&#xff0c;背后发生的DNS查询过程就像一场精密的交响乐演出。而区域传送&#xff08;Zone Transfer&#xff09;作为DNS系统中的关键机制&#xff0c;本应是乐谱中协调各声部的指挥棒&#xff0c…...

10个ProjectLearn性能优化技巧:提升网站加载速度和用户体验的终极指南

10个ProjectLearn性能优化技巧&#xff1a;提升网站加载速度和用户体验的终极指南 【免费下载链接】projectlearn-project-based-learning A curated list of project tutorials for project-based learning. 项目地址: https://gitcode.com/gh_mirrors/pr/projectlearn-proj…...

寻音捉影·侠客行企业应用:制药企业GMP培训录音中自动核查‘无菌操作’等SOP术语

寻音捉影侠客行企业应用&#xff1a;制药企业GMP培训录音中自动核查‘无菌操作’等SOP术语 1. 引言&#xff1a;制药企业的音频管理痛点 在制药企业的日常运营中&#xff0c;GMP&#xff08;良好生产规范&#xff09;培训是确保药品质量和生产安全的关键环节。每次培训都会产…...

南北阁Nanbeige 4.1-3B实现AIGC应用:内容生成实战案例

南北阁Nanbeige 4.1-3B实现AIGC应用&#xff1a;内容生成实战案例 1. 模型效果概览 南北阁Nanbeige 4.1-3B作为一款轻量级大语言模型&#xff0c;在AIGC内容生成领域展现出了令人惊喜的能力。虽然参数量相对较小&#xff0c;但在实际测试中&#xff0c;它在文本创作、代码生成…...

单机游戏的多人革命:Nucleus Co-Op如何重构本地游戏体验

单机游戏的多人革命&#xff1a;Nucleus Co-Op如何重构本地游戏体验 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 【需求场景&#xff1a;当游戏…...

Pixel Mind Decoder 创意写作助手:分析经典文学中的情绪节奏与模仿生成

Pixel Mind Decoder 创意写作助手&#xff1a;分析经典文学中的情绪节奏与模仿生成 1. 当AI遇见文学创作 写作最难把握的是什么&#xff1f;很多作家会告诉你&#xff1a;是情绪的节奏。就像音乐需要起伏的旋律&#xff0c;一部好作品也需要精心设计的情感曲线。但传统创作中…...

GBase 8a数据库运维管理系统GDOM运营商应用案例

2025年某运营商全面上线部署南大通用GBase 8a&#xff08;gbase database)数据库运维管理系统GDOM&#xff0c;替换原有脚本Zabbix 的监控管理模式&#xff0c;并对接集团统一分布式底座管理平台&#xff0c;实现对湖仓各技术栈产品的统一纳管。通过升级 GDOM&#xff0c;实现了…...

JAVA集成CAS客户端总结

一、依赖<dependency><groupId>org.jasig.cas.client</groupId><artifactId>cas-client-support-springboot</artifactId><version>3.6.4</version></dependency>二、yml配置cas:server-url-prefix: https://xxx.xxx:8443/cas…...

Asian Beauty Z-Image Turbo效果展示:不同光照角度(侧逆光/伦勃朗光/蝴蝶光)表现

Asian Beauty Z-Image Turbo效果展示&#xff1a;不同光照角度&#xff08;侧逆光/伦勃朗光/蝴蝶光&#xff09;表现 在摄影艺术中&#xff0c;光线是塑造人物灵魂的画笔。侧逆光勾勒轮廓&#xff0c;伦勃朗光刻画戏剧&#xff0c;蝴蝶光则带来柔和与优雅。对于专注于东方美学…...