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

厦门做网站公司西安seo顾问

厦门做网站公司,西安seo顾问,注册功能的网站怎么做,永康营销型网站建设文章目录 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.hengruixuexiao.com/news/56267.html

相关文章:

  • 中山网站制作建设百度统计怎么用
  • 作品展示的网站东莞网络推广营销
  • llsmp wordpress谷歌搜索广告优化
  • 上海网页设计多少钱seo排名快速刷
  • 支付宝怎么做网站维护问答推广
  • 深圳手机集团网站建设网店代运营的套路
  • 网站开发经验与教训范文线上推广有哪些
  • 常州做网站麦策电商厦门网站的关键词自动排名
  • 装修网站怎样做网站关键词搜索排名
  • 旅游网站结构图肥城市区seo关键词排名
  • 学校网站建设系统杭州seo薪资水平
  • 2016年做网站能赚钱公司seo排名优化
  • 医院营销型网站建设seo网络推广招聘
  • 两学一做专题网站用途宁波网络营销公司
  • 鹤岗北京网站建设企业微信营销系统
  • 杭州网站建设电话大连seo优化
  • 中国十大门户类网站seo学徒招聘
  • 如何处理网站死链培训心得体会1000字
  • 郑州市建设工程信息网官网百度seo软件优化
  • 东莞倣网站温州网站建设优化
  • 北京建设网站制作广告公司推广平台
  • 福建网站建设公司排名软文写作
  • 公众号免费模板网站用html制作淘宝网页
  • 网网站设计网b站视频推广网站动漫
  • 加快公司网站建设小红书怎么推广引流
  • 东莞高端品牌网站建设系统优化工具
  • 做网站构思网盘资源共享网站
  • 自己怎么做卖东西的网站郑州网络推广代理
  • 什么软件做美食视频网站好搜狗推广助手
  • 合肥网站建设 一浪电商网站开发平台