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

乌鲁木齐做网站百度官网推广平台电话

乌鲁木齐做网站,百度官网推广平台电话,网站制作网页,网站建设日程表及费用明细文章目录 LeetCode?启动!!!题目:使循环数组所有元素相等的最少秒数题目描述代码与解题思路 LeetCode?启动!!! 今天的题目类型差不多是第一次见到,原来题目描述…

文章目录

  • LeetCode?启动!!!
  • 题目:使循环数组所有元素相等的最少秒数
    • 题目描述
    • 代码与解题思路

LeetCode?启动!!!


今天的题目类型差不多是第一次见到,原来题目描述的操作是每个数 “扩散” 到整个数组,直到数组的数变的一模一样

题目:使循环数组所有元素相等的最少秒数

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

题目描述

代码与解题思路

func minimumSeconds(nums []int) int {pos := map[int][]int{}for i, v := range nums {pos[v] = append(pos[v], i) // 下标数组 pos[v]}n := len(nums)ans := n/2 // 每一秒钟, 两个值相同的数都在同时往外扩散, 如果只有一个数能扩散, 就需要 n/2 秒for _, a := range pos {max_len := a[0] + n - a[len(a)-1] // 环形数组 nums 两个下标背面相隔的距离for i := 1; i < len(a); i++ {max_len = max(max_len, a[i]-a[i-1]) // 数组 nums 两个下标正面相隔的距离 }ans = min(ans, max_len/2) // 两个数同时扩散, 所以需要/2}return ans
}

这道题我用的思路是:

  1. 先将数组中值相同的数塞进以该值为 key 的 map 中
  2. 遍历 map 中每一个数组,找出两个下标之间最远的长度(因为题目给出的:nums[(i - 1 + n) % n] 代表着 nums 数组能够被看成是一个环形数组,所以我们需要计算两种情况:一个是正常的下标相减,一个是环形数组从背面的下标相减,也就是这个操作:max_len := a[0] + n - a[len(a)-1])
  3. 最后找到所有相同数下标能够扩散到对方的最小值,就是我们要求的最小秒数了(如果没有两个以上的相同数,那就只能用一个数扩散 n/2 秒了)
http://www.hrbkazy.com/news/34513.html

相关文章:

  • 红色大气网络公司企业网站源码_适合广告设计百度数据开放平台
  • 山东网络建站推广每日新闻快报
  • 培训网站建设方案书旺道seo推广有用吗
  • 电子商务网站设计的原则沈阳seo技术
  • 网站建设公司营销推广链接搜索
  • 网站建设优化方案汤阴县seo快速排名有哪家好
  • 网站制作公司怎样帮客户做优化普通话手抄报文字内容
  • 网站建设课程总结郑州竞价托管代运营
  • 网站案例比较多的公司今日热点新闻一览
  • php做网站的好处sem是什么显微镜
  • 医院网站制作百度自媒体注册入口
  • 旅游网站怎么用dw做yande搜索引擎官网入口
  • 网站当前位置 样式指数函数公式
  • 瑞安商业网站建设网站备案查询工信部官网
  • 网站如何做线上和线下推广企业营销策划书如何编写
  • 巴基斯坦人做网站怎么样快手刷评论推广网站
  • 邯郸菜鸟网站建设微信朋友圈广告推广代理
  • 去哪里找做网站的网站推广方案范文
  • 韶关网站开发图们网络推广
  • 网站策划素材河南百度推广电话
  • 临淄网站建设yx718网络营销专业学什么课程
  • 湘潭九华网站志鸿优化设计官网
  • 电商的网站开发订单返利功能如何自己做网页
  • 网页制作素材网站推荐网络销售每天做什么
  • 网页设计实训报告主要内容北京网站建设东轩seo
  • 网站视频如何下载青岛网站seo
  • 用Html5做网站广州搜发网络科技有限公司
  • 建设旅游景点的网站的好处微信软文范例大全100
  • wordpress 视频图片网站黑科技推广软件
  • 代码网站怎么做的中山做网站推广公司