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

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.

/阅读下一篇/

etcd v3.6.1 重磅发布!性能飙升+安全加固,云原生存储引擎迎来革命性升级

返回网易首页 下载网易新闻客户端
相关推荐
热点推荐
苏超爆火,最担心的事情还是来了!这一次,江苏13太保空前团结

苏超爆火,最担心的事情还是来了!这一次,江苏13太保空前团结

野山历史
2025-06-07 09:25:07
央妈突发降息的牛市,6月9日,凌晨的三大重要消息冲击市场!

央妈突发降息的牛市,6月9日,凌晨的三大重要消息冲击市场!

风口招财猪
2025-06-09 01:40:11
女排2-3土耳其!庄宇珊惊喜,3老将托底,张籽萱四五局被针对!

女排2-3土耳其!庄宇珊惊喜,3老将托底,张籽萱四五局被针对!

篮球资讯达人
2025-06-08 22:09:39
洛杉矶非法移民“围捕战”持续升级,美加州为何突然“失控”?

洛杉矶非法移民“围捕战”持续升级,美加州为何突然“失控”?

上观新闻
2025-06-08 18:09:39
真恶心!59岁男子将参加第29次高考,产业被扒,占高考资源当网红

真恶心!59岁男子将参加第29次高考,产业被扒,占高考资源当网红

观察鉴娱
2025-06-06 09:15:20
中方果然没看错,李在明刚上台不到24小时,就给中方送上定心丸

中方果然没看错,李在明刚上台不到24小时,就给中方送上定心丸

智观科技
2025-06-09 00:25:18
某“民族品牌”再次出丑,这下终于遮不住了

某“民族品牌”再次出丑,这下终于遮不住了

末名先生
2025-06-06 17:49:40
中美芯片战,美国拿出最后底牌,对华禁售EDA,想搞垮国产芯片

中美芯片战,美国拿出最后底牌,对华禁售EDA,想搞垮国产芯片

胖福的小木屋
2025-06-07 23:36:35
放弃权力的时候,才是不可战胜的时候

放弃权力的时候,才是不可战胜的时候

难得君
2025-06-06 13:16:12
地头蛇!安徽殴打游客老板身份曝光,背景不简单,隔壁老板曝内情

地头蛇!安徽殴打游客老板身份曝光,背景不简单,隔壁老板曝内情

陈博世财经
2025-06-08 14:50:25
央视《长安的荔枝》首播!连追3集后,我想说:古装剧就该这么拍

央视《长安的荔枝》首播!连追3集后,我想说:古装剧就该这么拍

大笑江湖史
2025-06-07 21:35:27
天呢!网传最大的铁饭碗要破裂,直接影响200万人生计…

天呢!网传最大的铁饭碗要破裂,直接影响200万人生计…

慧翔百科
2025-05-21 14:02:24
“惊”!马斯克唯一出路曝光,美国或遭“灭顶之灾”!

“惊”!马斯克唯一出路曝光,美国或遭“灭顶之灾”!

时事挖掘机
2025-06-08 08:35:48
游客在安徽遭围殴,打人老板身份曝光,背景不简单,官方文旅介入

游客在安徽遭围殴,打人老板身份曝光,背景不简单,官方文旅介入

麓谷隐士
2025-06-08 07:42:04
宣璐事件持续发酵!白月光形象破裂,不红真的是因为人品问题?

宣璐事件持续发酵!白月光形象破裂,不红真的是因为人品问题?

情感大头说说
2025-06-08 11:01:59
抓捕非法移民遭居民围堵,洛杉矶市中心爆发冲突!特朗普政府:将出动国民警卫队

抓捕非法移民遭居民围堵,洛杉矶市中心爆发冲突!特朗普政府:将出动国民警卫队

上观新闻
2025-06-08 11:05:57
一名在沙特工作的英国人偷拍了公主米莎尔和她的情人被处死的惨景

一名在沙特工作的英国人偷拍了公主米莎尔和她的情人被处死的惨景

忠于法纪
2025-04-29 18:44:47
震惊!网传佛山一公司员工连续6天24小时连轴转工作,奖励1000元

震惊!网传佛山一公司员工连续6天24小时连轴转工作,奖励1000元

火山诗话
2025-06-07 21:42:00
一部代表作都没有,却高高在上当评委,连谢霆锋、刀郎都难逃魔掌

一部代表作都没有,却高高在上当评委,连谢霆锋、刀郎都难逃魔掌

明月聊史
2025-06-03 16:20:03
西餐厅喝下午茶遇到张柏芝,她侧脸简直无敌了无法用语言形容的美

西餐厅喝下午茶遇到张柏芝,她侧脸简直无敌了无法用语言形容的美

阿废冷眼观察所
2025-06-08 19:42:50
2025-06-09 02:52:49
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
853文章数 31关注度
往期回顾 全部

科技要闻

马斯克"越红线",美政府急寻SpaceX替代品

头条要闻

女子花5000多元找收纳师后晒图 网友:我以为是收纳前

体育要闻

冠军高芙:只要专注自己 太阳就会照常升起

娱乐要闻

与前妻对簿公堂却暴露了张纪中的窘境

财经要闻

暴涨超9%!白银狂飙,“抢夺”黄金光环!

汽车要闻

复古造型乐趣依旧 宝马R12 nineT又帅又好骑

态度原创

时尚
本地
教育
公开课
军事航空

烂大街的土裙子别穿了!这6件洋气巨显瘦,回头率100%

本地新闻

非遗里的河南 | 黄河泥变身千年墨宝,写字都带仙气儿~

教育要闻

自主招生题,利用非负性,快速求值

公开课

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

军事要闻

洛杉矶冲突加剧 特朗普派出2000名国民警卫队