网易首页 > 网易号 > 正文 申请入驻

2024-08-14:用go语言,给定两个长度分别为n和m的整数数组nums和changeIndices,下标从1开始。初始时,

0
分享至

2024-08-14:用go语言,给定两个长度分别为n和m的整数数组nums和changeIndices,下标从1开始。初始时,nums 中所有下标均未标记。

从第1秒到第m秒,每秒可以选择以下四种操作之一:

1.选择范围 [1, n] 中一个下标 i,将nums[i]减少1。

2.将nums[changeIndices[s]]设为任意非负整数。

3.选择范围 [1, n] 中一个下标 i,标记满足nums[i]为0的下标i。

4.不执行任何操作。

任务是找到最早的秒数(在范围 [1, m] 中),在这个秒数下执行最佳操作后,能够标记所有下标。如果无法标记所有下标,返回-1。

输入:nums = [3,2,3], changeIndices = [1,3,2,2,2,2,3]。

输出:6。

解释:这个例子中,我们总共有 7 秒。按照以下操作标记所有下标:

第 1 秒:将 nums[changeIndices[1]] 变为 0 。nums 变为 [0,2,3] 。

第 2 秒:将 nums[changeIndices[2]] 变为 0 。nums 变为 [0,2,0] 。

第 3 秒:将 nums[changeIndices[3]] 变为 0 。nums 变为 [0,0,0] 。

第 4 秒:标记下标 1 ,因为 nums[1] 等于 0 。

第 5 秒:标记下标 2 ,因为 nums[2] 等于 0 。

第 6 秒:标记下标 3 ,因为 nums[3] 等于 0 。

现在所有下标已被标记。

最早可以在第 6 秒标记所有下标。

所以答案是 6 。

答案2024-08-14:

chatgpt

题目来自leetcode3049。

大体步骤如下:

1.初始化总秒数为数组 nums 的长度 n,并遍历 nums 计算出总共需要的天数 total(慢速复习 + 考试)。

2.创建一个数组 firstT,用于记录每个索引对应的首次变化的时间(从 m 开始往前)。

3.初始化堆 h,并利用 sort.Search 函数找到最小的秒数 ans,使得满足能够标记所有下标。

4.在排序后的时间线上依次进行操作,首先检查是否需要继续慢速复习或考试,然后根据条件进行相应的操作,更新堆 h 并维护慢速复习天数以及快速复习(堆中的元素)。

5.如果所有下标被标记,则返回最早秒数 ans;否则返回 -1。

总的时间复杂度为 O(m log m)(sort.Search 的二分查找)+ O(m)(遍历整个时间线)= O(m log m)

总的额外空间复杂度为 O(m)(堆 h 的存储空间)。

go完整代码如下:

package main

import(
"container/heap"
"fmt"
"sort"
)

func earliestSecondToMarkIndices(nums, changeIndices []int)int{
    n, m :=len(nums),len(changeIndices)
if n > m {
return-1
}

    total := n
for _, v :=range nums {
        total += v // 慢速复习+考试所需天数
}

    firstT :=make([]int, n)
for t := m -1; t >=0; t--{
        firstT[changeIndices[t]-1]= t +1
}

    h := hp{}
    ans := n + sort.Search(m+1-n,func(mx int)bool{
        mx += n
        cnt, slow :=0, total
        h.IntSlice= h.IntSlice[:0]
for t := mx -1; t >=0; t--{
            i := changeIndices[t]-1
            v := nums[i]
if v <=1|| t != firstT[i]-1{
                cnt++// 留给左边,用来快速复习/考试
continue
}
if cnt ==0{
if h.Len()==0|| v <= h.IntSlice[0]{
                    cnt++// 留给左边,用来快速复习/考试
continue
}
                slow += heap.Pop(&h).(int)+1
                cnt +=2// 反悔:一天快速复习,一天考试
}
            slow -= v +1
            cnt--// 快速复习,然后消耗一天来考试
            heap.Push(&h, v)
}
return cnt >= slow // 剩余天数搞定慢速复习+考试
})
if ans > m {
return-1
}
return ans
}

type hp struct{ sort.IntSlice}

func (h *hp)Push(v any){ h.IntSlice=append(h.IntSlice, v.(int))}
func (h *hp)Pop() any   { a := h.IntSlice; v := a[len(a)-1]; h.IntSlice= a[:len(a)-1];return v }

func main(){
    nums :=[]int{3,2,3}
    changeIndices :=[]int{1,3,2,2,2,2,3}
    fmt.Println(earliestSecondToMarkIndices(nums, changeIndices))
}
在这里插入图片描述

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
严查电动车接送小孩!接娃怎么办?国家新规定:把方便留给群众!

严查电动车接送小孩!接娃怎么办?国家新规定:把方便留给群众!

你是我心中最美星空
2026-04-04 19:43:15
伊朗军方:美军营救飞行员“任务失败” 多架飞机被击落

伊朗军方:美军营救飞行员“任务失败” 多架飞机被击落

界面新闻
2026-04-05 14:37:11
美国前被俘飞行员回忆:躲在灌溉渠中仍被抓,战机被击落处境在训练中不可能复制

美国前被俘飞行员回忆:躲在灌溉渠中仍被抓,战机被击落处境在训练中不可能复制

红星新闻
2026-04-05 17:26:39
一场136-134的险胜让火箭渔翁得利,湖人彻底无奈,森林狼空欢喜

一场136-134的险胜让火箭渔翁得利,湖人彻底无奈,森林狼空欢喜

毒舌NBA
2026-04-05 07:23:57
孙怡的肩颈线条优美,行走时体态挺拔,尽显轻盈灵动的姿态

孙怡的肩颈线条优美,行走时体态挺拔,尽显轻盈灵动的姿态

草莓解说体育
2026-03-09 19:47:21
杭州男子失恋游湖南,遇苗族婚宴随礼1000入席,离场却被伴娘拦下

杭州男子失恋游湖南,遇苗族婚宴随礼1000入席,离场却被伴娘拦下

兰姐说故事
2025-06-09 10:00:07
收拾日本跨出重要一步,中方推动新一波制裁,日方竟要求撤回成命

收拾日本跨出重要一步,中方推动新一波制裁,日方竟要求撤回成命

小杨侃事
2026-04-06 02:08:30
农村开始“翻旧账”了!村村全覆盖,这3类人躲都躲不掉

农村开始“翻旧账”了!村村全覆盖,这3类人躲都躲不掉

三农雷哥
2026-03-08 20:45:46
6岁女童失踪6天后续!奶茶店店主透露细节,失联手机终被找到

6岁女童失踪6天后续!奶茶店店主透露细节,失联手机终被找到

天天热点见闻
2026-04-05 14:15:40
美全球领导力认同度下滑,中国反超

美全球领导力认同度下滑,中国反超

烽火瞭望者
2026-04-05 11:04:01
王曼昱1-4丢冠原因揭晓:刘国正点破关键,赛后发言显格局

王曼昱1-4丢冠原因揭晓:刘国正点破关键,赛后发言显格局

陈锌特色美食
2026-04-05 22:38:04
真牛!10公斤残骸砸中Model Y车顶没击穿,特斯拉又被讨论疯了

真牛!10公斤残骸砸中Model Y车顶没击穿,特斯拉又被讨论疯了

华人生活网
2026-04-05 04:13:12
一级致癌物已经公布,世卫组织呼吁停止食用,看完转告父母

一级致癌物已经公布,世卫组织呼吁停止食用,看完转告父母

刘哥谈体育
2026-04-05 00:07:28
反常识警告:猪肉越便宜,你越要小心钱包

反常识警告:猪肉越便宜,你越要小心钱包

睿博思
2026-04-03 10:54:48
万事皆有定数,人生顺其自然便是圆满

万事皆有定数,人生顺其自然便是圆满

青苹果sht
2026-03-27 06:09:46
大范围雨雪即将抵达吉林省

大范围雨雪即将抵达吉林省

吉刻新闻
2026-04-05 18:55:53
王菲谢霆锋,冲上热搜! 4月4日,王菲和谢霆锋双双冲上热搜

王菲谢霆锋,冲上热搜! 4月4日,王菲和谢霆锋双双冲上热搜

乡野小珥
2026-04-05 21:41:25
百病不离肝!它是藏在身边的“养肝果”,每天吃一点,养肝少生病

百病不离肝!它是藏在身边的“养肝果”,每天吃一点,养肝少生病

阿龙美食记
2026-03-28 11:51:16
我妈拿我彩礼给弟弟买车,我远嫁外地后再没回家,3年后弟弟来电

我妈拿我彩礼给弟弟买车,我远嫁外地后再没回家,3年后弟弟来电

五元讲堂
2026-03-12 14:27:11
中国已无退路了!美军为中美选好了主战场,决心要跟中国打场大战

中国已无退路了!美军为中美选好了主战场,决心要跟中国打场大战

丁丁鲤史纪
2026-04-03 12:09:15
2026-04-06 04:35:00
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1169文章数 62关注度
往期回顾 全部

科技要闻

花200薅5千算力,Claude冷血断供“龙虾”

头条要闻

伊朗官员提开放霍尔木兹海峡条件

头条要闻

伊朗官员提开放霍尔木兹海峡条件

体育要闻

CBA最老球员,身价7500万美元

娱乐要闻

王灿兮否认婆媳不和 晒与杜淳妈合影

财经要闻

谁造出了优思益这头“怪物”?

汽车要闻

家用SUV没驾驶乐趣?极氪8X第一个不同意

态度原创

数码
亲子
旅游
公开课
军事航空

数码要闻

大胆复古美学,海盗船推出原子紫配色K65 PLUS WIRELESS机械键盘

亲子要闻

小英自曝给女儿剪短发原因!怕头发抢营养长不高,想剃光头太真实

旅游要闻

文明旅游|清明出游请注意!莫让这些不文明行为煞风景!

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

美飞行员获救细节:美伊发生激烈交火 至少4死1伤

无障碍浏览 进入关怀版