每日一题leetcode--使循环数组所有元素相等的最少秒数

这篇具有很好参考价值的文章主要介绍了每日一题leetcode--使循环数组所有元素相等的最少秒数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

相当于扩散,每个数可以一次可以扩散到左右让其一样,问最少多少次可以让整个数组都变成一样的数

使用枚举,先将所有信息存到hash表中,然后逐一进行枚举,计算时间长短用看下图

每日一题leetcode--使循环数组所有元素相等的最少秒数,leetcode,哈希算法,散列表

 考虑到环形数组,可以把首项+n放到最后,这样for循环就相当于前后可以联通

贴一张别人的解释

每日一题leetcode--使循环数组所有元素相等的最少秒数,leetcode,哈希算法,散列表

 文章来源地址https://www.toymoban.com/news/detail-653630.html

class Solution {
public:
    int minimumSeconds(vector<int>& nums) {
        unordered_map<int,vector<int>> map;
        int len=nums.size();
        for(int i=0;i<len;i++){
            map[nums[i]].push_back(i);
        }
        int maxn=999999;
        for(auto&[k,v]:map){
            int minn=-1;
            v.push_back(v[0]+len);
            for(int i=0;i<v.size()-1;i++){
                minn=max((v[i+1]-v[i])/2,minn);
            }
            maxn=min(maxn,minn);
        }
        return maxn;
    }
};

到了这里,关于每日一题leetcode--使循环数组所有元素相等的最少秒数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ( 数组和矩阵) 378. 有序矩阵中第 K 小的元素 ——【Leetcode每日一题】

    难度:中等 给你一个 n x n n x n n x n 矩阵 m a t r i x matrix ma t r i x ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。 你必须找到一个内存复杂度优于 O ( n 2 ) O(n^2) O ( n 2 ) 的解决方案。 示例 1:

    2024年02月14日
    浏览(42)
  • 【LeetCode - 每日一题】2594. 修车的最少时间(23.09.07)

    给定每个师傅修车的时间和需要修的车辆总数,计算修理所有汽车需要的最少时间。 师傅可以同时修车。 看到题目没有任何头绪,直接查看题解。 至于为什么用二分做呢,讨论区有个友友这么说到: 对于修理时间 t t t 来说: 若 t t t 时间内可以修理完所有车,则大于等于

    2024年02月09日
    浏览(40)
  • 【LeetCode - 每日一题】1654. 到家的最少跳跃次数(23.08.30)

    可以左跳可以右跳 不能连续左跳两次 不能跳到负数 不能跳到 forbidden[] 求可以跳到 x 的最少跳跃次数 a. overview 最初时,只有 0 位置可以进行跳跃;在跳到 a 位置后,又可以跳到 2a 位置和 a-b 位置(如果 ab );然后又多了两个位置(或者一个位置)可以跳跃…因此这是一个

    2024年02月10日
    浏览(31)
  • 2023-06-17 LeetCode每日一题(分割圆的最少切割次数)

    点击跳转到题目位置 圆内一个 有效切割 ,符合以下二者之一: 该切割是两个端点在圆上的线段,且该线段经过圆心。 该切割是一端在圆心另一端在圆上的线段。 一些有效和无效的切割如下图所示。 给你一个整数 n ,请你返回将圆切割成相等的 n 等分的 最少 切割次数。

    2024年02月09日
    浏览(41)
  • LeetCode每日一题:2594. 修车的最少时间(2023.9.7 C++)

    目录 2594. 修车的最少时间 题目描述: 实现代码与解析: 二分 原理思路:         给你一个整数数组  ranks  ,表示一些机械工的  能力值  。 ranksi  是第  i  位机械工的能力值。能力值为  r  的机械工可以在  r * n2  分钟内修好  n  辆车。 同时给你一个整数  cars

    2024年02月09日
    浏览(36)
  • 【LeetCode每日一题合集】2023.8.28-2023.9.3(到家的最少跳跃次数)

    https://leetcode.cn/problems/insert-interval/ 提示: 0 = intervals.length = 10^4 intervals[i].length == 2 0 = intervals[i][0] = intervals[i][1] = 10^5 intervals 根据 intervals[i][0] 按 升序 排列 newInterval.length == 2 0 = newInterval[0] = newInterval[1] = 10^5 当前区间与要加入的新区间之间的关系只有两种可能:相交或者不相

    2024年02月09日
    浏览(49)
  • 【LeetCode】每日一题&&两数之和&&寻找正序数组的中位数&&找出字符串中第一个匹配项的下标&&在排序数组中查找元素的第一个和最后一个位置

    ========================================================================= 主页点击直达: 个人主页 我的小仓库: 代码仓库 C语言偷着笑: C语言专栏 数据结构挨打小记: 初阶数据结构专栏 Linux被操作记: Linux专栏 LeetCode刷题掉发记: LeetCode刷题 算法: 算法专栏  C++头疼记: C++专栏 计算机

    2024年02月08日
    浏览(42)
  • 【LeetCode每日一题】2645. 构造有效字符串的最少插入数(计算组数+动态规划+考虑相邻字母)

    2024-1-11 2645. 构造有效字符串的最少插入数 方法一:计算组数 1.用count统计,能构成几组abc 2.如果当前字符大于之前字符,说明还在组内,不更新 3.如果当前字符小于等于之前字符,说明不是同一组的abc,组数更新 4.最终返回值:组数*3,再减去原本的字符数,就是要插入的次数

    2024年01月17日
    浏览(45)
  • 【LeetCode】每日一题:移除元素

    目录  题目: 思想1:暴力解法 思想2:创建一个temp数组  思想3:双指针 👻内容专栏:《LeetCode刷题专栏》 🐨本文概括: 27.移除元素 🐼本文作者:花 碟 🐸发布时间:2023.4.15 https://leetcode.cn/problems/remove-element/   点击跳转到LeetCode平台OJ页面(27.移除元素)  👉 示例1: 解

    2023年04月19日
    浏览(40)
  • Leetcode每日一题——“移除元素”

    各位CSDN的uu们你们好呀,小雅兰又来啦,今天,小雅兰的内容是移除元素,下面,让我们进入Leetcode的世界吧   说明: 为什么返回数值是整数,但输出的答案是数组呢? 请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。 你可以

    2023年04月23日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包