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

2024-09-18:用go语言,给定一个从 0 开始的长度为 n 的正整数数组 nums 和一个二维操作数组 queries,

0
分享至

2024-09-18:用go语言,给定一个从 0 开始的长度为 n 的正整数数组 nums 和一个二维操作数组 queries,每个操作由一个下标值 indexi 和一个数值 ki 组成。

开始时,数组中的所有元素都是未标记的。依次执行 m 次操作,每次操作的过程如下:

1.如果下标 indexi 对应的元素还未标记,则标记这个元素。

2.然后再标记数组中最小的未标记元素,标记 ki 个。如果有多个值相等的未标记元素,优先标记下标较小的。若未标记元素不足 ki 个,则将它们全部标记。

我们需要返回一个长度为 m 的数组 answer,其中 answer[i] 表示执行第 i 次操作后,数组中未标记元素的和值。

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

输出:[8,3,0]。

解释:

我们依次对数组做以下操作:

标记下标为 1 的元素,同时标记 2 个未标记的最小元素。标记完后数组为 nums = [1,2,2,1,2,3,1] 。未标记元素的和为 2 + 2 + 3 + 1 = 8 。

标记下标为 3 的元素,由于它已经被标记过了,所以我们忽略这次标记,同时标记最靠前的 3 个未标记的最小元素。标记完后数组为 nums = [1,2,2,1,2,3,1] 。未标记元素的和为 3 。

标记下标为 4 的元素,由于它已经被标记过了,所以我们忽略这次标记,同时标记最靠前的 2 个未标记的最小元素。标记完后数组为 nums = [1,2,2,1,2,3,1] 。未标记元素的和为 0 。

答案2024-09-18:

chatgpt

题目来自leetcode3080。

大体步骤如下:

1.初始化变量:给定 nums 数组和 queries 二维数组,创建一个长度为 nids 数组,其中 nnums 数组的长度。初始化 s 为 0。

2.遍历 nums 数组,同时计算数组元素的和 s,并将每个元素的索引存入 ids 数组中。

3.对 ids 数组进行稳定排序,排序依据是对应元素在 nums 中的值。

4.创建一个答案数组 ans,长度为 queries 的长度,用于存储每次操作后未标记元素的和值。

5.遍历 queries 数组,对每个操作进行处理:

  • • 获取操作指令中的下标 i 和数值 k

  • • 更新当前和 s,减去下标 i 对应的元素值并将其置为 0,表示已标记。

  • • 在已排序的 ids 中找到最小值且未标记的元素进行标记,标记数量为 k。更新 s 和对应元素值为 0。

  • • 将当前未标记元素的和值 s 存入答案数组 ans 中。

6.返回答案数组 ans

总的时间复杂度:

  • • 初始化和遍历 nums 数组、对 ids 数组排序、处理每个查询操作都需要 O(n log n) 的时间。

  • • 所以总的时间复杂度为 O(n log n) + O(m * log n),其中 nnums 数组的长度,mqueries 的长度。

总的额外空间复杂度:

  • • 需要额外的空间来存储 idsans 数组,以及函数调用栈的空间等。

  • idsans 数组的长度分别为 nm,额外空间复杂度为 O(n + m)。

  • • 函数调用栈的空间复杂度为 O(1)。

  • • 所以总的额外空间复杂度为 O(n + m)。

Go完整代码如下:

package main

import(
"fmt"
"slices"
)

func unmarkedSumArray(nums []int, queries [][]int)[]int64{
    s, n :=0,len(nums)
    ids :=make([]int, n)
for i, x :=range nums {
        s += x
        ids[i]= i
}
    slices.SortStableFunc(ids,func(i, j int)int{return nums[i]- nums[j]})

    ans :=make([]int64,len(queries))
    j :=0
for qi, p :=range queries {
        i, k := p[0], p[1]
        s -= nums[i]
        nums[i]=0// 标记
for; j < n && k >0; j++{
            i := ids[j]
if nums[i]>0{// 没有被标记
                s -= nums[i]
                nums[i]=0
                k--
}
}
        ans[qi]=int64(s)
}
return ans
}

func main(){
    nums :=[]int{1,2,2,1,2,3,1}
    queries :=[][]int{{1,2},{3,3},{4,2}}
    fmt.Println(unmarkedSumArray(nums, queries))
}
在这里插入图片描述 Rust完整代码如下:

fn unmarked_sum_array(mut nums:Vec
           
 , queries:Vec
              
 >)->Vec
                
 { letn= nums.len(); letmut ids:Vec
                  
 =(0..n).collect();     ids.sort_by(|&i,&j| nums[i].cmp(&nums[j])); letmut s= nums.iter().sum::
                    
 (); letmut ans=Vec::new(); letmut j=0; forpin queries { letqi= p[0]asusize; letmut i= p[1]asusize;         s -= nums[i];         nums[i]=0; while j < n && i >0{ letidx= ids[j]; if nums[idx]>0{                 s -= nums[idx];                 nums[idx]=0;                 i -=1; }             j +=1; }         ans.push(s asi64); }     ans } fnmain(){ letnums=vec![1,2,2,1,2,3,1]; letqueries=vec![vec![1,2],vec![3,3],vec![4,2]]; println!("{:?}",unmarked_sum_array(nums, queries)); }
          
         
        
       
     
在这里插入图片描述

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

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-01-29 21:55:49
从北京第二CBD到“空城”?是谁“掏空”了望京

从北京第二CBD到“空城”?是谁“掏空”了望京

翰林冷知识
2026-01-29 23:30:33
我替老板顶包十年,出来他转我四百万,隔天他闺女还送来俩套房产

我替老板顶包十年,出来他转我四百万,隔天他闺女还送来俩套房产

兰姐说故事
2026-01-30 17:30:08
太阳报:穆德里克和美国女演员频繁互动,邀请对方去迪士尼玩

太阳报:穆德里克和美国女演员频繁互动,邀请对方去迪士尼玩

懂球帝
2026-01-30 19:00:05
穆帅欧冠神迹,让没出息的曼联窃喜,曼联想省下几百万,太好笑!

穆帅欧冠神迹,让没出息的曼联窃喜,曼联想省下几百万,太好笑!

福酱的小时光
2026-01-30 18:12:21
3-2爆冷张本美和!21岁陈熠决胜局发威,国乒新锐扛外战大旗

3-2爆冷张本美和!21岁陈熠决胜局发威,国乒新锐扛外战大旗

卿子书
2026-01-30 08:28:07
00后女孩一周7次857,肠烂离世:纵欲的后果,你根本承担不起

00后女孩一周7次857,肠烂离世:纵欲的后果,你根本承担不起

刘哥谈体育
2026-01-30 18:07:35
我国拒接美8500亿债务,专家:救美国就是救中国的时代已经结束了

我国拒接美8500亿债务,专家:救美国就是救中国的时代已经结束了

南宫一二
2025-12-18 17:26:57
离婚7年,前儿媳买房又买车,婆婆找上门:现在很好,同意复婚了

离婚7年,前儿媳买房又买车,婆婆找上门:现在很好,同意复婚了

清水家庭故事
2026-01-30 17:11:52
建议解散!辽宁惨败宁波,队员毫不在乎,顶薪球员竟然非常高兴

建议解散!辽宁惨败宁波,队员毫不在乎,顶薪球员竟然非常高兴

宗介说体育
2026-01-30 10:16:54
这些人要发抖了!中纪委再次出动,剑指这些歪风和腐败问题!

这些人要发抖了!中纪委再次出动,剑指这些歪风和腐败问题!

细说职场
2026-01-29 14:47:17
中方限期六个月让日本归还文物,为什么日本从上到下个个破防?

中方限期六个月让日本归还文物,为什么日本从上到下个个破防?

老木说
2026-01-29 21:13:27
温情时刻,巴拉圭19岁球员去世后队友用其棺材打进“最后一球”

温情时刻,巴拉圭19岁球员去世后队友用其棺材打进“最后一球”

懂球帝
2026-01-30 08:00:20
我是看明白了,不管刘强东钱再多,企业再大,对于他的父母亲来说并没多大用处

我是看明白了,不管刘强东钱再多,企业再大,对于他的父母亲来说并没多大用处

生活新鲜市
2026-01-30 02:52:50
你有知道哪些炸裂的秘密?网友:我有个秘密说出来肯定大家要笑死

你有知道哪些炸裂的秘密?网友:我有个秘密说出来肯定大家要笑死

带你感受人间冷暖
2026-01-29 00:10:05
现在的贪官有3个特点:喝酒只喝台子;偷养情人;孩子出国留学。

现在的贪官有3个特点:喝酒只喝台子;偷养情人;孩子出国留学。

细说职场
2026-01-30 14:11:04
斯塔默访华,有点不一般

斯塔默访华,有点不一般

上观新闻
2026-01-29 06:37:03
山西省阳泉市委原常委、平定县委原书记李明被“双开”

山西省阳泉市委原常委、平定县委原书记李明被“双开”

潇湘晨报
2026-01-30 17:23:26
日本北海道滞留大量中国旅客,不是对同胞麻木不仁,而是怒其不争

日本北海道滞留大量中国旅客,不是对同胞麻木不仁,而是怒其不争

南权先生
2026-01-30 15:41:57
津门虎被罚10分,于根伟队内喊话:男子汉站出来,一分一分往回拼

津门虎被罚10分,于根伟队内喊话:男子汉站出来,一分一分往回拼

米修体育
2026-01-30 16:10:24
2026-01-30 20:00:52
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1115文章数 54关注度
往期回顾 全部

科技要闻

意念控制机器人不是科幻 1-2年就落地

头条要闻

特朗普警告称中英、中加合作是"危险的" 外交部回应

头条要闻

特朗普警告称中英、中加合作是"危险的" 外交部回应

体育要闻

“假赌黑”的子弹,还要再飞一会儿吗?

娱乐要闻

金晨出事前 曾灵魂发问未收到春晚邀请

财经要闻

金银闪崩,是调整还是趋势反转的开始?

汽车要闻

合资品牌首搭800V/5C快充 东风日产NX8将于3、4月上市

态度原创

本地
家居
旅游
时尚
艺术

本地新闻

云游中国|拨开云雾,巫山每帧都是航拍大片

家居要闻

蓝调空舍 自由与个性

旅游要闻

莆田常州双城联游 春节期间莆田仙游县所有景区对常州人免门票

推广|| 冬天利用率超高的裙子,怎么搭都对!

艺术要闻

风景画选刊 | 中国油画学会三十年艺术展

无障碍浏览 进入关怀版