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

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.

相关推荐
热点推荐
有一种后悔叫买了“高层的2楼”,不好住卖不掉,彻底成为不动产

有一种后悔叫买了“高层的2楼”,不好住卖不掉,彻底成为不动产

装修秀
2026-04-23 11:15:03
夏补钾,不疲惫,建议大家:夏天多吃这3种“补钾高手”,精神好

夏补钾,不疲惫,建议大家:夏天多吃这3种“补钾高手”,精神好

阿龙美食记
2026-05-31 20:23:07
全新一代问界 M9 上市:国产豪华车标杆的自我刷新

全新一代问界 M9 上市:国产豪华车标杆的自我刷新

晚点LatePost
2026-05-29 09:50:28
女员工嘲讽顾客“穷逛”后续:本人火到香港已社死,商场也被坑惨

女员工嘲讽顾客“穷逛”后续:本人火到香港已社死,商场也被坑惨

哄动一时啊
2026-06-01 19:30:38
在与俄领导人会面后,俄罗斯寡头们“自愿”为战争捐款2200亿卢布

在与俄领导人会面后,俄罗斯寡头们“自愿”为战争捐款2200亿卢布

山河路口
2026-06-02 14:04:22
全线失守!克里米亚制空权被乌军强势夺走了

全线失守!克里米亚制空权被乌军强势夺走了

知兵
2026-06-02 08:00:16
阿迪达斯发进城办事T恤,客服回应

阿迪达斯发进城办事T恤,客服回应

第一财经资讯
2026-06-02 15:07:57
伦敦世乒赛夺冠后,王皓宣布:王楚钦为国乒男队队长,梁靖崑为副队长

伦敦世乒赛夺冠后,王皓宣布:王楚钦为国乒男队队长,梁靖崑为副队长

环球网资讯
2026-06-02 14:32:33
稻城亚丁怎么就“跪”了?!

稻城亚丁怎么就“跪”了?!

行者殷涛
2026-06-01 18:00:30
蒋中正亲笔书写的任命状冲上热议!书法的好坏,永远意见不一?

蒋中正亲笔书写的任命状冲上热议!书法的好坏,永远意见不一?

书画相约
2026-06-01 07:23:51
师父来了!文班亚马的靠山,真TM硬啊!

师父来了!文班亚马的靠山,真TM硬啊!

左右为篮
2026-06-02 09:06:29
神级补强!魔笛挂靴赴皇马辅佐穆帅,专治银河战舰更衣室内乱!

神级补强!魔笛挂靴赴皇马辅佐穆帅,专治银河战舰更衣室内乱!

田先生篮球
2026-06-02 09:23:02
太讽刺了!国内的职场环境,不像公司,像朝廷,让人一言难尽…

太讽刺了!国内的职场环境,不像公司,像朝廷,让人一言难尽…

慧翔百科
2026-06-02 08:40:47
一男子中奖10万,请家人吃700块钱海鲜庆祝,结账时发现帐单高达280万,男子:差点倾家荡产

一男子中奖10万,请家人吃700块钱海鲜庆祝,结账时发现帐单高达280万,男子:差点倾家荡产

背包旅行
2026-06-02 15:18:47
好口感+高营养!九阳K7Pro破壁豆浆机复刻太空豆浆的安心密码

好口感+高营养!九阳K7Pro破壁豆浆机复刻太空豆浆的安心密码

中国家电网
2026-06-02 15:20:56
杭州限狗令正式落地,养狗人月花上千,凭什么让不养狗的人买单?

杭州限狗令正式落地,养狗人月花上千,凭什么让不养狗的人买单?

奇思妙想草叶君
2026-06-01 19:40:34
“崩老头”全链调查:1500元可购全套工具,视频、语音均能伪造身份

“崩老头”全链调查:1500元可购全套工具,视频、语音均能伪造身份

大象新闻
2026-06-01 16:54:53
一位母亲没能送出的儿童节礼物:离婚诉讼期间生父当街抢走两岁孩子,被拘留15日仍不送还

一位母亲没能送出的儿童节礼物:离婚诉讼期间生父当街抢走两岁孩子,被拘留15日仍不送还

红星新闻
2026-06-02 00:50:25
网曝一英国网红打赌,24小时拿下中国女生,结果让国人直呼丢人

网曝一英国网红打赌,24小时拿下中国女生,结果让国人直呼丢人

小徐讲八卦
2026-06-02 09:17:26
猛批华为“韬定律”是学术造假,杨学志到底什么来头?

猛批华为“韬定律”是学术造假,杨学志到底什么来头?

数字财经智库
2026-06-02 11:36:16
2026-06-02 17:07:00
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1260文章数 69关注度
往期回顾 全部

科技要闻

烧掉千亿后,美团、阿里、京东谁先止血?

头条要闻

男子离婚当晚杀害前妻逃亡17年被判死缓 检方抗诉成功

头条要闻

男子离婚当晚杀害前妻逃亡17年被判死缓 检方抗诉成功

体育要闻

1米74的业余联赛替补,在英超踢中卫

娱乐要闻

奚梦瑶何猷君补办婚礼超幸福

财经要闻

锂电“资源墙”高筑 全球性长期博弈开始

汽车要闻

星途神秘新车轮廓曝光 又一款性能SUV要来了?

态度原创

房产
家居
旅游
艺术
军事航空

房产要闻

5200巨量投资曝光!未来五年,海南格局大变!

家居要闻

流线型轮廓 包容多元身形

旅游要闻

安徽六安:“非遗+”赋能全域旅游

艺术要闻

周杰伦花 1.36 亿拍下这幅画

军事要闻

伊朗媒体新发布最高领袖照片

无障碍浏览 进入关怀版