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

2026-05-21:变成目标数组的最少操作次数。用go语言,给定两个长度相同的数组 nums 和 target。 - nums[i] 表示当前位置 i...

0
分享至

2026-05-21:变成目标数组的最少操作次数。用go语言,给你两个长度为 n 的整数数组 nums 和 target。nums[i] 表示当前位置 i 的当前值,target[i] 表示你希望当前位置 i 最终变成的期望值。

你可以进行任意多次操作(可以不做)。每次操作你要先选定一个整数 x,然后在数组 nums 里找出所有“极大连续区间”:这些区间里的每个位置都等于 x,且该区间在保持全为 x 的前提下,不能再向左或向右扩展(也就是已经是该值 x 的最长连续段,并且是无法再延伸的那种)。

对每个这样的区间 [l, r],本次操作会把这个区间内的 nums 全部替换成 target 对应位置的值:

把 nums[l..r] 直接改成 target[l..r]。

你的目标是让最终 nums 完全等于 target,问最少需要多少次操作。

1 <= n == nums.length == target.length <= 100000。

1 <= nums[i], target[i] <= 100000。

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

输出: 2

解释:

选择 x = 1:极大段 [0, 0] 被更新 -> nums 变为 [2, 2, 3]。

选择 x = 2:极大段 [0, 1] 被更新(nums[0] 保持为 2,nums[1] 变为 1) -> nums 变为 [2, 1, 3]。

因此,将 nums 转换为 target 需要 2 次操作。

题目来自力扣3810。

一、分步骤详细推演过程 初始状态

  • • nums:[1, 2, 3]

  • • target:[2, 1, 3]

  • • 已操作次数:0

第一步:执行第 1 次操作
  1. 1.选择 x = 1(最优选择,能最快修正错误位置)

  2. 2.找 nums 中 x=1 的极大连续区间

  • • 遍历数组:只有索引 0 位置是 1,左边无元素、右边是 2(不是1),所以极大区间是[0, 0]

3.执行替换

  • • 把 nums[0] 替换成 target[0](值为2)。

4.操作后状态

  • • nums:[2, 2, 3]

  • • target:[2, 1, 3]

  • • 已操作次数:1

第二步:执行第 2 次操作
  1. 1.选择 x = 2(当前唯一需要修正的错误值)

  2. 2.找 nums 中 x=2 的极大连续区间

  • • 遍历数组:索引 0、1 都是 2,左边无元素、右边是 3(不是2),所以极大区间是[0, 1]

3.执行替换

  • • 把 nums[0 1] 替换成 target[0 1]:

    • • nums[0] 原本就是2(和target一致,不变);

    • • nums[1] 替换成 target[1](值为1)。

4.操作后状态

  • • nums:[2, 1, 3]

  • • target:[2, 1, 3]

  • • 已操作次数:2

第三步:终止

此时numstarget完全相等,停止操作。
最终最少操作次数:2

三、核心解题思路

  1. 1.第一步:筛选差异位置
    遍历两个数组,找出所有nums[i] ≠ target[i]的位置,这些位置是必须通过操作修正的。

  2. 2.第二步:统计「需要操作的不同数值」
    每次操作,我们只能选择一个数值x,批量修正所有x的极大区间。
    最少操作次数 =所有需要修正的位置中,不同数值的数量
    (示例中需要修正的数值是1和2,共2个,所以答案是2)

  3. 3.第三步:输出结果
    直接返回统计到的不同数值的个数,就是最少操作次数。

四、时间复杂度 & 额外空间复杂度 分析 1. 总时间复杂度
  • • 核心操作:一次完整遍历数组(遍历所有元素,对比nums和target)+ 哈希表插入/查询操作。

  • • 数组长度为n,哈希表的单次操作是O(1)常数时间。

  • • 总时间复杂度:O(n)
    (线性时间,处理10万级数据完全高效)

2. 总额外空间复杂度
  • • 额外使用了哈希集合存储需要修正的不同数值。

  • • 哈希集合的最大元素个数:最多等于数组长度n(极端情况所有位置都需要修正,且数值全不同)。

  • • 总额外空间复杂度:O(n)
    (线性空间,符合题目数据范围要求)

总结
  1. 1. 过程:先选数值x→找x的最长连续段→批量替换为目标值,重复至数组一致;

  2. 2. 最少操作次数 = 需要修正的不同数值的个数

  3. 3. 时间复杂度:O(n)(线性遍历);

  4. 4. 空间复杂度:O(n)(哈希集合存储差异数值)。

Go完整代码如下:

package main

import (
"fmt"
)

func minOperations(nums, target []int)int {
set := map[int]struct{}{}
for i, x := range nums {
if x != target[i] {
set[x] = struct{}{}
}
}
returnlen(set)
}

func main() {
nums := []int{1, 2, 3}
target := []int{2, 1, 3}
result := minOperations(nums, target)
fmt.Println(result)
}

Python完整代码如下:

package main

import (
"fmt"
)

func minOperations(nums, target []int)int {
set := map[int]struct{}{}
for i, x := range nums {
if x != target[i] {
set[x] = struct{}{}
}
}
returnlen(set)
}

func main() {
nums := []int{1, 2, 3}
target := []int{2, 1, 3}
result := minOperations(nums, target)
fmt.Println(result)
}

C++完整代码如下:

  




using namespace std;

int minOperations(vector& nums, vector& target) {
unordered_set set;
for (int i = 0; i < nums.size(); i++) {
if (nums[i] != target[i]) {
set.insert(nums[i]);
}
}
return set.size();
}

int main() {
vector nums = {1, 2, 3};
vector target = {2, 1, 3};
int result = minOperations(nums, target);
cout << result << endl;
return0;
}

我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。

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

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-08-12 10:13:53
以后可能没有铁饭碗了,网传体制内已裁120万人

以后可能没有铁饭碗了,网传体制内已裁120万人

互联网大观
2026-08-10 15:16:40
“鲲”来了!399.9米“绿巨人”贴脸穿过江阴大桥,泰州造硬核刷屏

“鲲”来了!399.9米“绿巨人”贴脸穿过江阴大桥,泰州造硬核刷屏

扬子晚报
2026-08-11 14:35:55
听到“可惜希特勒没把犹太人杀光”,以色列男子挥拳打向美国人

听到“可惜希特勒没把犹太人杀光”,以色列男子挥拳打向美国人

落梅如雪乱飞
2026-08-12 10:38:00
伦敦警察“被迫含泪”驾驶370万英镑限量法拉利:车主无驾照,警员拒绝拖车,亲自开回警局

伦敦警察“被迫含泪”驾驶370万英镑限量法拉利:车主无驾照,警员拒绝拖车,亲自开回警局

全球吃瓜现场
2026-08-11 15:12:06
穆里尼奥紧急补援!皇马锁定三大世界级天才!完美接班典礼中场

穆里尼奥紧急补援!皇马锁定三大世界级天才!完美接班典礼中场

澜归序
2026-08-12 07:09:29
1998年数万华人遭屠杀,中国为何没出兵?26年后答案让人沉默

1998年数万华人遭屠杀,中国为何没出兵?26年后答案让人沉默

哄动一时啊
2026-02-17 22:21:25
饶颖:赵忠祥与我发生关系多年,他有特殊癖好,令我身心受到伤害

饶颖:赵忠祥与我发生关系多年,他有特殊癖好,令我身心受到伤害

阿废冷眼观察所
2026-08-04 06:11:41
名嘴直言:国乒只有一人能压制张本美和,陈幸同王艺迪比赛暂停教练只会说扛一扛

名嘴直言:国乒只有一人能压制张本美和,陈幸同王艺迪比赛暂停教练只会说扛一扛

尘语者
2026-08-11 17:44:25
DSA联合主席称哈马斯屠杀1200人“不可避免” 遭强烈谴责

DSA联合主席称哈马斯屠杀1200人“不可避免” 遭强烈谴责

闪存猎手
2026-08-12 01:13:15
绝对尊重!勇士官方表态:库里拥有生涯最终选择权,可自主决定去留

绝对尊重!勇士官方表态:库里拥有生涯最终选择权,可自主决定去留

体育见习官
2026-08-12 07:59:31
渡江战役再晚一点,后果不堪设想:胡琏短短几个月,疯狂扩军15万

渡江战役再晚一点,后果不堪设想:胡琏短短几个月,疯狂扩军15万

云霄纪史观
2026-08-11 19:26:44
92年湖南一男子预感工业铜要大涨,40一公斤时砸下重金囤了100吨

92年湖南一男子预感工业铜要大涨,40一公斤时砸下重金囤了100吨

三农老历
2026-07-31 02:35:32
中方制裁成果显现!1028家日本企业破产,高市早苗反华遭反噬!

中方制裁成果显现!1028家日本企业破产,高市早苗反华遭反噬!

健身狂人
2026-08-12 06:07:14
科学周刊 | 现代科技如何“解封”2300多年前的战国秦酒?淡蓝色的液体,保存有7斤多,一共检测到了2400多种化合物,味道嘛……

科学周刊 | 现代科技如何“解封”2300多年前的战国秦酒?淡蓝色的液体,保存有7斤多,一共检测到了2400多种化合物,味道嘛……

大风新闻
2026-08-11 20:12:05
60岁生下双胞胎女儿的盛海琳已76岁,女儿亭亭玉立,让人赞叹不已

60岁生下双胞胎女儿的盛海琳已76岁,女儿亭亭玉立,让人赞叹不已

文刀贰
2026-08-10 22:44:04
终于来了!养老金调整主基调定了,让人心心念念,算算你能涨多少

终于来了!养老金调整主基调定了,让人心心念念,算算你能涨多少

流史岁月
2026-08-12 10:00:21
萨拉弹劾案民调突发!超六成民众拒绝站队,核心诉求只有两个字

萨拉弹劾案民调突发!超六成民众拒绝站队,核心诉求只有两个字

掉了颗大白兔糖
2026-08-12 02:33:56
王菲携女儿李嫣现身北京机场!20岁李嫣穿透视装,身高已超妈妈

王菲携女儿李嫣现身北京机场!20岁李嫣穿透视装,身高已超妈妈

孤芳自赏的小李
2026-08-10 20:10:30
上海交通大学72-69逆转政治大学,夺得本届AUBL总冠军

上海交通大学72-69逆转政治大学,夺得本届AUBL总冠军

懂球帝
2026-08-11 22:28:05
2026-08-12 12:04:49
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1388文章数 79关注度
往期回顾 全部

科技要闻

Claude又出骚操作 改个错字也要留AI水印?

头条要闻

灵异探险博主"姜小柔"车祸去世年仅24岁 家属发布说明

头条要闻

灵异探险博主"姜小柔"车祸去世年仅24岁 家属发布说明

体育要闻

NBA老顽童,抽着大麻喝着小酒告别了

娱乐要闻

陈思诚恋情疑云再起

财经要闻

李嘉诚,再一次大撤退!他嗅到了什么?

汽车要闻

闪充/天神之眼B/云辇-C 2027款海豹06售9.99万元起

态度原创

手机
家居
艺术
本地
公开课

手机要闻

男子车祸 口袋里小米17 Pro抗下致命一击 弯成折叠屏背屏居然还亮

家居要闻

2026建博会(广州) 公装联探展交流活动

艺术要闻

色彩的盛宴,视觉的狂欢:西班牙水彩大师福斯蒂诺·马丁·冈萨雷斯的艺术世界

本地新闻

黄州一夜,苏轼写给普通人的月光

公开课

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

无障碍浏览 进入关怀版