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

最近王者荣耀崩了,腾讯给每个账号都补偿了啥?

0
分享至

专栏:50多种数据结构彻底征服

专栏:50多种经典图论算法全部掌握

3月28日王者荣耀官方账号发文称:由于服务器异常,部分玩家出现登录异常、对局无法进入的问题,正在紧急处理中。经近3个小时的抢修,官方于29日凌晨宣布修复完成,并补偿玩家10张积分夺宝券及2张排位保护卡,有不少网友表示对这次的赔偿比较满意。

虽然这款游戏很火,也出来很多年了,但我从来都没玩过,主要是不喜欢玩游戏,但我身边也确实有不少人玩。王者荣耀总的用户数量官方并没有透露,但在2025年春节期间,受福利活动推动,日活跃用户数攀升至1.5亿,达到《英雄联盟》巅峰日活的15倍,王者荣耀上线 9 年多至少为腾讯带来101.1亿美元(约为720.8亿元)收入。

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

来看下今天的算法题,这题是LeetCode的第1293题:网格中的最短路径,难度是困难。

给你一个 m * n 的网格,其中每个单元格不是 0(空)就是 1(障碍物)。每一步,您都可以在空白单元格中上、下、左、右移动。

如果您 最多 可以消除 k 个障碍物,请找出从左上角 (0, 0) 到右下角 (m-1, n-1) 的最短路径,并返回通过该路径所需的步数。如果找不到这样的路径,则返回 -1 。

示例1:


输入: grid = [[0,0,0],[1,1,0],[0,0,0],[0,1,1],[0,0,0]], k = 1 输出:6 解释: 不消除任何障碍的最短路径是 10。 消除位置 (3,2) 处的障碍后,最短路径是 6 。该路径是 (0,0) -> (0,1) -> (0,2) -> (1,2) -> (2,2) -> (3,2) -> (4,2).

示例2:


输入:grid = [[0,1,1],[1,1,1],[1,0,0]], k = 1 输出:-1 解释:我们至少需要消除两个障碍才能找到这样的路径。

  • grid.length == m

  • grid[0].length == n

  • 1 <= m, n <= 40

  • 1 <= k <= m*n

  • grid[i][j] 是 0 或 1

  • grid[0][0] == grid[m-1][n-1] == 0

问题分析

这题说的是找到一条从左上角到右下角的路径,这条路径所需要的步数最少,路径中可能会有障碍物,但我们有 k 次机会消除障碍物。

如果只有障碍物而不能消除,这就是一道典型的BFS问题,我们只需要从起始点开始搜索,计算到终止点所需要的步数即可,但这里有消除障碍物的功能,所以还需要加个条件判断。

假如没有障碍物,从左上角到右下角只需要走 m+n-2 步即可,所以如果可消除的机会 k 大于等于 m+n-3(起始点和终止点没有障碍物),我们一定可以把最短路径上的所有障碍物全部消除。

当 k 不大于 m+n-3 的时候,我们可以通过BFS搜索来计算。因为这里是矩阵搜索,我们需要使用一个变量visited来记录每个位置是否访问过,以及到当前位置剩余可消除的数量。

如果当前位置没有访问过,或者剩余可消除的数量更大,我们就更新当前位置,然后把它添加到队列中。刚开始的时候我们把每一个位置的值初始化为 -1 ,表示还没有被访问过。

关于矩阵的BFS访问有一个模板,具体内容大家可以看下中的第 9 章,掌握矩阵的BFS遍历之后,我们只需要对模板稍微修改下即可。

JAVA:

public int shortestPath(int[][] grid, int k) { int m = grid.length; int n = grid[0].length; if (k >= m + n - 3)// 消除障碍物的数量比较大,可以找到一条最短路径。       return m + n - 2;   k = Math.min(k, m + n - 3);   Queue

 q = new LinkedList<>();// 创建队列   q.offer(newint[]{0, 0, k});// 添加起始位置 int ans = 0; // visited表示当前位置[i,j]是否访问过,以及当前位置剩余可以消除的数量。 int[][] visited = newint[m][n]; for (int[] row : visited)       Arrays.fill(row, -1);// 初始化全部为 -1 ,表示所有位置都还没有访问过。 int[][] dirs = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};// 方向数组   visited[0][0] = k;// 起始位置,剩余可消除的数量。 while (!q.isEmpty()) {       ans++;// 行走的步数       int size = q.size();       for (int i = 0; i < size; i++) {           int[] cur = q.poll();// 出队           int x = cur[0], y = cur[1];           int rest = cur[2];// 剩余可消除的数量。           if (grid[x][y] == 1)// 当前位置是 1 ,消除一个。               rest--;           // 遍历当前位置[x,y]的上下左右四个方向。           for (int[] dir : dirs) {               int newX = x + dir[0];               int newY = y + dir[1];               // 不能越界,或者当前位置[newX,newY]是个障碍物,但没有可消               // 除的数量了,所以要跳过。               if (newX < 0 || newX >= m || newY < 0 || newY >= n                       || (grid[newX][newY] == 1 && rest == 0))                   continue;               if (newX == m - 1 && newY == n - 1)                   return ans;// 到达目的地               // 当前位置[newX,newY]没有被访问过,或者被访问过,但剩余访问的次数更多。               if (rest > visited[newX][newY]) {                   q.offer(newint[]{newX, newY, rest});                   visited[newX][newY] = rest;               }           }       }   } return -1; }

C++:

public:     int shortestPath(vector

 > &grid, int k) {         int m = grid.size();         int n = grid[0].size();         if (k >= m + n - 3)// 消除障碍物的数量比较大,可以找到一条最短路径。             return m + n - 2;         k = min(k, m + n - 3);         queue

 > q;// 创建队列         q.push({0, 0, k});// 添加起始位置         int ans = 0;         // visited表示当前位置[i,j]是否访问过,以及当前位置剩余可以消除的数量。         vector

 > visited(m, vector

 (n, -1));         vector

 > dirs = {{-1, 0},                                     {1,  0},                                     {0,  -1},                                     {0,  1}};// 方向数组         visited[0][0] = k;// 起始位置,剩余可消除的数量。         while (!q.empty()) {             ans++;// 行走的步数             int size = q.size();             for (int i = 0; i < size; i++) {                 vector

 cur = q.front();                 q.pop();// 出队                 int x = cur[0], y = cur[1];                 int rest = cur[2];// 剩余可消除的数量。                 if (grid[x][y] == 1)// 当前位置是 1 ,消除一个。                     rest--;                 // 遍历当前位置[x,y]的上下左右四个方向。                 for (auto &dir: dirs) {                     int newX = x + dir[0];                     int newY = y + dir[1];                     // 不能越界,或者当前位置[newX,newY]是个障碍物,但没有可消                     // 除的数量了,所以要跳过。                     if (newX < 0 || newX >= m || newY < 0 || newY >= n                         || (grid[newX][newY] == 1 && rest == 0))                         continue;                     if (newX == m - 1 && newY == n - 1)                         return ans;// 到达目的地                     // 当前位置[newX,newY]没有被访问过,或者被访问过,但剩余访问的次数更多。                     if (rest > visited[newX][newY]) {                         q.push({newX, newY, rest});                         visited[newX][newY] = rest;                     }                 }             }         }         return-1;     }






笔者简介

博哥,真名:王一博,毕业十多年, 作者,专注于 数据结构和算法 的讲解,在全球30多个算法网站中累计做题2000多道,在公众号中写算法题解800多题,对算法题有自己独特的解题思路和解题技巧,喜欢的可以给个关注,也可以 下载我整理的1000多页的PDF算法文档 。

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

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-04-22 13:15:03
打工时代快要结束了?2027局势大转变,普通人往后该咋谋生

打工时代快要结束了?2027局势大转变,普通人往后该咋谋生

石辰搞笑日常
2026-05-20 11:38:35
刚刚确认!中国买下200架波音,只为给C919换一个“心脏”

刚刚确认!中国买下200架波音,只为给C919换一个“心脏”

霁寒飘雪
2026-05-21 14:23:29
司法厅原厅长解维俊被开除党籍,曾任菏泽市市长

司法厅原厅长解维俊被开除党籍,曾任菏泽市市长

上观新闻
2026-05-21 17:21:29
看了许利民抽象的赛后采访,才知道,北京惨败赵睿为啥敢笑得出来

看了许利民抽象的赛后采访,才知道,北京惨败赵睿为啥敢笑得出来

后仰大风车
2026-05-21 08:15:09
WSBK赛事确定落地中国,四支车队明年使用张雪机车

WSBK赛事确定落地中国,四支车队明年使用张雪机车

落雪听梅a
2026-05-20 21:46:23
菲律宾捅了马蜂窝,扣押69名中国公民,中方不再忍耐,反将菲一军

菲律宾捅了马蜂窝,扣押69名中国公民,中方不再忍耐,反将菲一军

林子说事
2026-05-21 10:17:21
涨价潮,要来了!

涨价潮,要来了!

米筐投资
2026-05-21 07:07:27
主角:看完原著才发现,大家痛恨的楚嘉禾,一辈子过得有多潇洒

主角:看完原著才发现,大家痛恨的楚嘉禾,一辈子过得有多潇洒

容妃
2026-05-21 13:42:48
追梦:骑士被逆转不是主帅的过错 哈登待联盟17年 对手总是单打他

追梦:骑士被逆转不是主帅的过错 哈登待联盟17年 对手总是单打他

仰卧撑FTUer
2026-05-21 10:38:10
1986年韩先楚病危,81岁陈云来看望,韩:我决定不做手术了

1986年韩先楚病危,81岁陈云来看望,韩:我决定不做手术了

牛锅巴小钒
2026-05-21 15:04:13
《主角》播出过半,迟蓬问有没有第二部,王晓晨回复超好笑

《主角》播出过半,迟蓬问有没有第二部,王晓晨回复超好笑

仙味少女心
2026-05-21 15:26:01
湖人愿为字母哥送出三个首轮签!Shams不看好:会有出价更高球队

湖人愿为字母哥送出三个首轮签!Shams不看好:会有出价更高球队

罗说NBA
2026-05-21 06:51:01
她是张镇麟妻子,广东籍名媛家世显赫,难怪丈夫能成CBA顶流

她是张镇麟妻子,广东籍名媛家世显赫,难怪丈夫能成CBA顶流

以茶带书
2026-05-21 17:11:02
心脏支架装上后还能活多少年?医生说出大实话,这3点才是关键!

心脏支架装上后还能活多少年?医生说出大实话,这3点才是关键!

芹姐说生活
2026-05-10 14:15:55
上海交大私吞奖金后续:处分落地,4个头衔被撸,本人主动退暑校

上海交大私吞奖金后续:处分落地,4个头衔被撸,本人主动退暑校

妙知
2026-05-20 10:41:23
TA :维拉在赛季初曾陷入严重危机,埃梅里也遭遇了执教最大危机

TA :维拉在赛季初曾陷入严重危机,埃梅里也遭遇了执教最大危机

云隐南山
2026-05-21 17:08:02
詹欧再度联手?独行侠官宣重要讯息,湖人欲组最强三巨头冲冠

詹欧再度联手?独行侠官宣重要讯息,湖人欲组最强三巨头冲冠

大卫的篮球故事
2026-05-20 17:04:59
日均客流跌幅近七成,广州有人实名呼吁拆掉BRT!

日均客流跌幅近七成,广州有人实名呼吁拆掉BRT!

新浪财经
2026-05-20 17:58:02
沙特联前瞻|利雅得胜利2-0达马克:C罗终结5年无冠尴尬,就在今晚

沙特联前瞻|利雅得胜利2-0达马克:C罗终结5年无冠尴尬,就在今晚

体育世界
2026-05-21 14:10:19
2026-05-21 18:39:00
数据结构和算法
数据结构和算法
专门介绍和写算法题解的号
273文章数 4关注度
往期回顾 全部

游戏要闻

日本本土玩家盛赞《地平线6》!大佬夸奖 真实还原

头条要闻

特朗普称将与赖清德交谈 外交部表态

头条要闻

特朗普称将与赖清德交谈 外交部表态

体育要闻

常住人口7000的小镇,拥有了一支德甲球队

娱乐要闻

反转!金秀贤与金赛纶未成年时交往不实

财经要闻

英伟达业绩超预!指引再新高仍不够亮眼

科技要闻

好到离谱也不够!英伟达交出816亿美元营收

汽车要闻

小鹏正在研发"高达" 融合机器人技术的主动悬架

态度原创

艺术
亲子
本地
数码
健康

艺术要闻

崔雪冬 2026年油画新作

亲子要闻

向宝妈“表白”,南山妇幼为每个家庭提供母乳喂养支持

本地新闻

用云锦的方式,打开江苏南京

数码要闻

Counterpoint:2026年全球OLED显示设备总支出预计增长77%

专家:别把PRP当作“自体干细胞”

无障碍浏览 进入关怀版