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

年终奖人均64万元,创公司成立以来最高纪录。

0
分享至

1月19日全球内存巨头SK海力士将向全体员工发放人均超1.36亿韩元(约合64万元人民币)的绩效奖金,创公司成立以来最高纪录。员工能拿到这笔巨额奖金的重要原因在于,去年9月,海力士与工会达成历史性劳资协议,废除此前“利润分享不超过基本工资10倍”的上限,改为年度营业利润的10%。

SK海力士2025年年度营业利润估计为43.8312万亿韩元,按10%计提绩效奖金约4.38万亿韩元(折合207亿元人民币)。它之所以这么豪横,底气主要来自于最近几年人工智能的快速崛起。SK海力是士主要生产和设计存储数据的芯片。比如我们电脑上的内存条,SSD固态硬盘等。这里也祝愿大家今年年终奖也都能拿这么多。

--------------下面是今天的算法题--------------

来看下今天的算法题,这题是LeetCode的第924题:尽量减少恶意软件的传播,难度是困难。

给出了一个由 n 个节点组成的网络,用 n × n 个邻接矩阵图 graph 表示。在节点网络中,当 graph[i][j] = 1 时,表示节点 i 能够直接连接到另一个节点 j。

一些节点 initial 最初被恶意软件感染。只要两个节点直接连接,且其中至少一个节点受到恶意软件的感染,那么两个节点都将被恶意软件感染。这种恶意软件的传播将继续,直到没有更多的节点可以被这种方式感染。

假设 M(initial) 是在恶意软件停止传播之后,整个网络中感染恶意软件的最终节点数。如果从 initial 中移除某一节点能够最小化 M(initial), 返回该节点。如果有多个节点满足条件,就返回索引最小的节点。

请注意,如果某个节点已从受感染节点的列表 initial 中删除,它以后仍有可能因恶意软件传播而受到感染。

示例1:


输入:graph = [[1,1,0],[1,1,0],[0,0,1]], initial = [0,1] 输出:0

示例2:


输入:graph = [[1,1,1],[1,1,1],[1,1,1]], initial = [1,2] 输出:1

  • n == graph.length

  • n == graph[i].length

  • 2 <= n <= 300

  • graph[i][j] == 0 或 1.

  • graph[i][j] == graph[j][i]

  • graph[i][i] == 1

  • 1 <= initial.length <= n

  • 0 <= initial[i] <= n - 1

  • initial 中所有整数均不重复

问题分析

这题描述的比较绕,我用大白话来描述一下就比较简单了。说的是给定一个无向图graph,图不一定是连通的,然后再给一个数组initial,它是图中的某些顶点,表示的是最初的病毒。只要是和病毒相连的顶点都会被病毒个感染,题中说的是从图中移除一个顶点,让被感染的顶点个数最少。

在一个连通图中只要有一个病毒,那么这个连通图中所有顶点就都会被感染。一个连通图也就是一个连通分量。因为题中说了只能移除一个顶点,如果在一个连通分量中只有一个病毒,我们把它移除,那么这个连通分量中的其他顶点就都不会被感染了,如果有多个连通分量在最初的时候都只有一个顶点被感染,我们移除连通分量节点个数最多的那个即可。

如果一个连通分量在最初的时候没有任何病毒,则不需要移除。如果一个连通分量有两个及以上的病毒,无论移除哪个,其他顶点也都会被感染。所以我们这里只移除连通分量在最初的时候只有一个病毒的那个顶点。

如果没有任何连通分量在最初的时候只有一个病毒,就移除initiate中最小的值即可(这是题中的要求,如果有多个节点满足条件,就返回索引最小的节点)。

JAVA:

private int curCnt; // 记录当前连通分量的节点个数
privateint initialCnt;// 记录当前连通分量中最初被感染的数量
privateint minVertexId;// 当前连通分量中最初被感染的最小编号

public int minMalwareSpread(int[][] graph, int[] initial) {
int n = graph.length;
boolean[] vis = newboolean[n];// 标记顶点是否被访问过
boolean[] isInitial = newboolean[n];// 标记初始感染的节点
int mInit = n;// 记录初始被感染的最小节点编号
for (int x : initial) {
isInitial[x] = true;
mInit = Math.min(mInit, x);
}

int ans = -1;// 最终要移除的节点
int maxSize = 0;// 要移除节点所在的连通分量的顶点个数
for (int x : initial) {// 遍历最初的恶意软件节点
if (vis[x])// 该顶点已经被访问过,则跳过
continue;
// 遍历当前连通分量的时候,下面3个变量都要重新初始化。
curCnt = 0;
initialCnt = 0;
minVertexId = n;
dfs(x, graph, vis, isInitial);// 只要x能访问到的节点都能被感染。
// 当前连通分量中最初被感染的恶意软件数量只有是 1 ,我们把它移除,M才会最小。
if (initialCnt == 1 && (curCnt > maxSize || curCnt == maxSize && minVertexId < ans)) {
ans = minVertexId;
maxSize = curCnt;
}
}
// 如果不能移除,则返回最初被感染的最小编号
return ans < 0 ? mInit : ans;
}

private void dfs(int x, int[][] graph, boolean[] vis, boolean[] isInitial) {
vis[x] = true;
curCnt++;// 统计当前连通分量的顶点个数
if (isInitial[x]) {
initialCnt++;// 该连通分量中恶意软件的数量
minVertexId = Math.min(minVertexId, x);
}
for (int i = 0; i < graph[x].length; i++) {
if (graph[x][i] == 1 && !vis[i])
dfs(i, graph, vis, isInitial);
}
}

C++:

private:
// 对应Java中的私有成员变量
int curCnt; // 记录当前连通分量的节点个数
int initialCnt; // 记录当前连通分量中最初被感染的数量
int minVertexId; // 当前连通分量中最初被感染的最小编号

// 深度优先搜索,遍历连通分量并统计关键信息
void dfs(int x, vector> &graph, vector &vis, vector &isInitial) {
vis[x] = true;
curCnt++; // 统计当前连通分量的节点数

// 如果当前节点是初始感染节点,更新统计信息
if (isInitial[x]) {
initialCnt++;
minVertexId = min(minVertexId, x);
}

// 遍历当前节点的所有邻接节点
for (int i = 0; i < graph[x].size(); i++) {
// 邻接且未访问过的节点,递归遍历
if (graph[x][i] == 1 && !vis[i]) {
dfs(i, graph, vis, isInitial);
}
}
}

public:
int minMalwareSpread(vector> &graph, vector &initial) {
int n = graph.size();
vector vis(n, false); // 标记节点是否被访问过
vector isInitial(n, false); // 标记节点是否是初始感染节点
int mInit = n; // 初始感染节点的最小编号

// 初始化isInitial数组,并找到初始感染节点的最小编号
for (int x: initial) {
isInitial[x] = true;
mInit = min(mInit, x);
}

int ans = -1; // 最终要移除的节点
int maxSize = 0; // 移除节点后能减少的最大感染节点数

// 遍历每个初始感染节点,分析其所在连通分量
for (int x: initial) {
if (vis[x]) { // 已访问过的连通分量跳过
continue;
}

// 重置当前连通分量的统计变量
curCnt = 0;
initialCnt = 0;
minVertexId = n;

// 遍历当前节点所在的连通分量
dfs(x, graph, vis, isInitial);

// 仅当连通分量中只有1个初始感染节点时,移除该节点才有意义
if (initialCnt == 1) {
// 优先选连通分量更大的,若大小相同则选编号更小的
if (curCnt > maxSize || (curCnt == maxSize && minVertexId < ans)) {
ans = minVertexId;
maxSize = curCnt;
}
}
}

// 若无有效移除节点,返回初始感染的最小编号;否则返回最优节点
return ans < 0 ? mInit : ans;
}

笔者简介

博哥,真名:王一博,毕业十多年, 作者,专注于 数据结构和算法 的讲解,在全球30多个算法网站中累计做题2000多道,在公众号中写算法题解900多题,对算法题有自己独特的解题思路和解题技巧。

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

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-09-30 10:10:18
普京阴阳怪气,罕见连用2大嘲讽恶词,信号不简单,说谁自己清楚

普京阴阳怪气,罕见连用2大嘲讽恶词,信号不简单,说谁自己清楚

旧史新谭
2026-10-04 18:13:45
伊朗外长:军事选项已死!

伊朗外长:军事选项已死!

不甜的李子
2026-10-05 16:03:03
中考取消了,是真的

中考取消了,是真的

行者殷涛
2026-10-03 16:38:09
“给你钱,让我搞一下”:29岁女子独自骑马到新疆,被一个70岁大爷性骚扰,摸了她两次大腿

“给你钱,让我搞一下”:29岁女子独自骑马到新疆,被一个70岁大爷性骚扰,摸了她两次大腿

江山挥笔
2026-09-13 11:03:46
穆勒:拜仁拒绝曼联1亿欧报价让我很高兴,是对我极大的认可

穆勒:拜仁拒绝曼联1亿欧报价让我很高兴,是对我极大的认可

懂球帝
2026-10-05 19:30:09
8000万欧标价:皇马问过一次的中场,切尔西7000万都没带走

8000万欧标价:皇马问过一次的中场,切尔西7000万都没带走

温柔且自由
2026-10-05 17:08:58
毛主席送给尼克松总统一幅字,至今无人看懂(附毛主席最全书法合集)

毛主席送给尼克松总统一幅字,至今无人看懂(附毛主席最全书法合集)

中国艺术家
2026-09-24 05:34:47
病友笑我买恒瑞医药是赌博,它熬出十款新药

病友笑我买恒瑞医药是赌博,它熬出十款新药

真实人物采访
2026-10-04 17:30:11
小米新机突然官宣:10月12日开售,国补2299元

小米新机突然官宣:10月12日开售,国补2299元

搞机小帝
2026-10-04 21:47:21
砍机长的副驾驶身份终于被扒出!3000多条“仇女”言论被翻出来

砍机长的副驾驶身份终于被扒出!3000多条“仇女”言论被翻出来

哎呀哎呀看电影
2026-10-04 20:39:20
网友偶遇,小菲抱小儿子怀柔度假,父子俩草坪互动超温馨!

网友偶遇,小菲抱小儿子怀柔度假,父子俩草坪互动超温馨!

寻墨阁
2026-10-05 12:47:20
现在的俄罗斯,大概率仅剩两条道可走:第一,把吃进去的地全还回来,赔到认怂;第二,扯掉“特别军事行动”这层遮羞布,正式宣战

现在的俄罗斯,大概率仅剩两条道可走:第一,把吃进去的地全还回来,赔到认怂;第二,扯掉“特别军事行动”这层遮羞布,正式宣战

扶苏聊历史
2026-10-05 11:46:24
没有任何退路可言!中国国防部向世界警告:解放军已做好全部准备

没有任何退路可言!中国国防部向世界警告:解放军已做好全部准备

阿芒娱乐说
2026-09-23 15:11:19
央视怒批、空有皮囊、德不配位,难怪国庆大场面不请“流量明星”

央视怒批、空有皮囊、德不配位,难怪国庆大场面不请“流量明星”

离离言几许
2026-10-03 15:41:26
房价很大可能重走1998年老路!所有人一定要提前做好心理准备

房价很大可能重走1998年老路!所有人一定要提前做好心理准备

偷喝一口奶
2026-09-11 08:36:30
大批美国游客涌入中国,回国后坦言:客观比较,中国比美国强多了

大批美国游客涌入中国,回国后坦言:客观比较,中国比美国强多了

雪儿爱追剧
2026-10-05 01:06:59
向太说1999年马云来她家,聊了一晚上互联网,从头到尾没开口要钱

向太说1999年马云来她家,聊了一晚上互联网,从头到尾没开口要钱

荆楚寰宇文枢
2026-09-28 22:14:46
陈赓端上一碗白水萝卜,自己躲屋里啃烧鸡,彭总推开门一看:好你个王八蛋

陈赓端上一碗白水萝卜,自己躲屋里啃烧鸡,彭总推开门一看:好你个王八蛋

纪史行者
2026-09-30 06:05:06
3-0横扫晋级!中国女乒15岁新星崛起夺4连胜:看齐孙颖莎王曼昱?

3-0横扫晋级!中国女乒15岁新星崛起夺4连胜:看齐孙颖莎王曼昱?

李喜林篮球绝杀
2026-10-05 13:17:49
2026-10-05 19:48:49
数据结构和算法
数据结构和算法
专门介绍和写算法题解的号
273文章数 4关注度
往期回顾 全部

财经要闻

零跑声明切割!蔡康永两面人身份被抵制

头条要闻

明珍珍被执行死刑前画面披露 接受采访神情淡定露微笑

头条要闻

明珍珍被执行死刑前画面披露 接受采访神情淡定露微笑

体育要闻

30天30队·热:扬尼斯、阿德巴约与克雷

娱乐要闻

胡歌现身游本昌遗体告别仪式

科技要闻

2026年诺奖:三名科学家因光遗传学获奖

汽车要闻

方程豹9月热销破4万 首款皮卡鲨鱼将于四季度上市

态度原创

艺术
健康
本地
教育
公开课

艺术要闻

吴冠中 大英博物馆展过的香港夜,1024万!

刷酸祛痘,为什么有人翻车?

本地新闻

中秋逛白塔寺,体验国医妙荟雅集

教育要闻

优秀班主任的4个绝招,这样做更容易走近孩子

公开课

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

无障碍浏览 进入关怀版