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

京东2024年年终奖大幅提升,采销岗平均薪酬将达23薪。

0
分享至

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

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

随着2025年春节的日益临近,各大互联网公司的春节假期安排和年终奖发放成为了广大员工和网友们热议的话题。

12月23日,京东发布了2024年年终奖发放计划,这是京东要实现从16薪迈向20薪的第一年。实现17薪的部门内年度绩效A+的员工将实现20薪,采销岗平均23薪,差不多相当于干一年发两年的工资,这年终奖确实挺诱人。

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

来看下今天的算法题,这题是LeetCode的第695题:岛屿的最大面积。

问题描述

来源:LeetCode第695题

难度:中等

给你一个大小为 m x n 的二进制矩阵 grid 。岛屿是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直的四个方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。

岛屿的面积是岛上值为 1 的单元格的数目。计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。

示例1:


输入:grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,1,0,1,0,0],[0,1,0,0,1,1,0,0,1,1,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0]] 输出:6 解释:答案不应该是 11 ,因为岛屿只能包含水平或垂直这四个方向上的 1 。

  • m == grid.length

  • n == grid[i].length

  • 1 <= m, n <= 50

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

问题分析

这题让计算岛屿的最大面积,岛屿的面积是通过上下左右相连接的 1 的个数。这题有多种解决方式,BFS,DFS和并查集都可以解决,之前我们讲过这道题,当时使用的是 BFS- ,这里我们使用 DFS 再来解这道题。

关于DFS的知识我们在 中也讲过,不过这里遍历的不是图,而是矩阵,实际上原理都是一样的。

在矩阵中每个位置最多只有上下左右四个和它相连,我们 遍历矩阵的每一个位置,如果当前位置是 1 ,表示它是岛屿,然后开始计算岛屿的面积。 就是以当前位置为起始点沿着它的上下左右四个方向查找,如果遇到 1 ,说明它们是同一个岛屿,累加面积,然后再把它变成 0 ,表示该位置已经计算过了,防止重复计算,最后只需要返回最大面积即可。

这里还要注意遍历的时候不能越界,只能访问矩阵内的位置。

JAVA:

public int maxAreaOfIsland(int[][] grid) {     int m = grid.length, n = grid[0].length;// 矩阵的宽和高     int ans = 0;// 记录最大面积     for (int i = 0; i < m; i++)         for (int j = 0; j < n; j++)             if (grid[i][j] == 1) // 当前位置如果是 1 ,开始计算                 ans = Math.max(ans, dfs(grid, i, j, m, n));     return ans; } public int dfs(int[][] grid, int i, int j, int m, int n) {     // 边界条件的判断,不能越界     if (i >= 0 && i < m && j >= 0 && j < n && grid[i][j] == 1) {         // 当前位置如果是1,为了防止重复计算就把他置为0,然后再从他的上下左右四个方向开始查找         grid[i][j] = 0;         return 1 + dfs(grid, i + 1, j, m, n) + dfs(grid, i - 1, j, m, n)                 + dfs(grid, i, j - 1, m, n) + dfs(grid, i, j + 1, m, n);     }     return 0; }

C++:

public:     int maxAreaOfIsland(vector

 > &grid) {         int m = grid.size(), n = grid[0].size();// 矩阵的宽和高         int ans = 0;// 记录最大面积         for (int i = 0; i < m; i++)             for (int j = 0; j < n; j++)                 if (grid[i][j] == 1) // 当前位置如果是 1 ,开始计算                     ans = max(ans, dfs(grid, i, j, m, n));         return ans;     }     int dfs(vector

 > &grid, int i, int j, int m, int n) {         // 边界条件的判断,不能越界         if (i >= 0 && i < m && j >= 0 && j < n && grid[i][j] == 1) {             // 当前位置如果是1,为了防止重复计算就把他置为0,然后再从他的上下左右四个方向开始查找             grid[i][j] = 0;             return 1 + dfs(grid, i + 1, j, m, n) + dfs(grid, i - 1, j, m, n)                    + dfs(grid, i, j - 1, m, n) + dfs(grid, i, j + 1, m, n);         }         return 0;     }


Python:

def maxAreaOfIsland(self, grid: List[List[int]]) -> int:     def dfs(i, j):         # 边界条件的判断,不能越界         if 0 <= i < m and 0 <= j < n and grid[i][j] == 1:             # 当前位置如果是1,为了防止重复计算就把他置为0,然后再从他的上下左右四个方向开始查找             grid[i][j] = 0             return 1 + dfs(i + 1, j) + dfs(i - 1, j) + dfs(i, j - 1) + dfs(i, j + 1)         return 0     m, n = len(grid), len(grid[0])  # 矩阵的宽和高     ans = 0  # 记录最大面积     for i in range(m):         for j in range(n):             if grid[i][j] == 1:  # 当前位置如果是 1 ,开始计算                 ans = max(ans, dfs(i, j))     return ans

笔者简介

博哥,真名:王一博,毕业十多年, 作者,专注于 数据结构和算法 的讲解,在全球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.

相关推荐
热点推荐
签了签了!正式加盟马刺!3亿前锋联手文班亚马

签了签了!正式加盟马刺!3亿前锋联手文班亚马

篮球实战宝典
2026-07-02 11:57:54
韩红一句“走个面儿”引全网声讨,这届观众不伺候了

韩红一句“走个面儿”引全网声讨,这届观众不伺候了

可达鸭面面观
2026-07-02 19:44:03
A股收评:遭遇“黑周四”!科创50暴跌7.7%,市场在怕什么?

A股收评:遭遇“黑周四”!科创50暴跌7.7%,市场在怕什么?

海右那人
2026-07-02 16:04:58
黄有龙澳洲赌债案落槌:2.8亿输光、2.7亿本金偿还、亿元利息主张

黄有龙澳洲赌债案落槌:2.8亿输光、2.7亿本金偿还、亿元利息主张

阿讯说天下
2026-07-02 09:56:50
广东车主投诉:三十多万元的车,才10天轮胎就爆了……知名电车品牌4S店说法反复,遭质疑

广东车主投诉:三十多万元的车,才10天轮胎就爆了……知名电车品牌4S店说法反复,遭质疑

南方都市报
2026-07-02 21:43:11
香港女星梁珊离世,知名制作人发文悼念:一路好走

香港女星梁珊离世,知名制作人发文悼念:一路好走

TVB剧评社
2026-07-02 14:50:20
记者:西海岸主帅郑智共停赛8场,战海港仍无法在替补席指挥

记者:西海岸主帅郑智共停赛8场,战海港仍无法在替补席指挥

懂球帝
2026-07-02 21:52:05
四个城市,人口跌破千万了

四个城市,人口跌破千万了

城市财经
2026-07-02 12:27:49
仅仅十年时间!从世界第85飙升世界第7,他们才是国足学习的对象

仅仅十年时间!从世界第85飙升世界第7,他们才是国足学习的对象

大卫的篮球故事
2026-07-02 19:44:05
本届世界杯,让我们看到了美国的另一面

本届世界杯,让我们看到了美国的另一面

正解局
2026-07-02 16:28:27
“真希望他不是我亲生的!”父亲直言讨厌儿子,引来千万家长共鸣

“真希望他不是我亲生的!”父亲直言讨厌儿子,引来千万家长共鸣

妍妍教育日记
2026-07-01 20:48:04
“高考估分715查分299 女孩称试卷不是自己的”?四川绵阳市教体局核查:纯属谣言 查无此人

“高考估分715查分299 女孩称试卷不是自己的”?四川绵阳市教体局核查:纯属谣言 查无此人

闪电新闻
2026-07-02 12:26:25
6月新势力销量:零跑9.3万台一骑绝尘,网友:性价比这块没对手!

6月新势力销量:零跑9.3万台一骑绝尘,网友:性价比这块没对手!

言车有徐
2026-07-01 16:32:08
广西一彩民精准猜中世界杯4场比分,投注50元获182万余元奖金,当事体彩门店:老顾客购彩,第二天发现前三场结果全对,才来店里取票

广西一彩民精准猜中世界杯4场比分,投注50元获182万余元奖金,当事体彩门店:老顾客购彩,第二天发现前三场结果全对,才来店里取票

扬子晚报
2026-07-02 20:56:06
小心那个世界杯上的胖子,他要认真了

小心那个世界杯上的胖子,他要认真了

中国新闻周刊
2026-07-02 21:05:11
摩纳哥王室:两代绝美王妃改善王室基因,王子公主都是高颜值

摩纳哥王室:两代绝美王妃改善王室基因,王子公主都是高颜值

小书生吃瓜
2026-07-02 20:01:52
张雪峰:本科已严重饱和的五个专业,1、临床医学,2、法学,3、计算机…考研是唯一出路!

张雪峰:本科已严重饱和的五个专业,1、临床医学,2、法学,3、计算机…考研是唯一出路!

LULU生活家
2026-07-02 20:56:54
于大宝:曾去过佛得角踢比赛;佛得角队里基本上都是葡萄牙人

于大宝:曾去过佛得角踢比赛;佛得角队里基本上都是葡萄牙人

懂球帝
2026-07-02 12:19:28
找到了,是浙EDZ82X6!53岁湖州理想车主回忆高速救特斯拉车主瞬间:事故车辆已窜出火苗,“她的右脚还在车里,小腿部分已经着火了……”

找到了,是浙EDZ82X6!53岁湖州理想车主回忆高速救特斯拉车主瞬间:事故车辆已窜出火苗,“她的右脚还在车里,小腿部分已经着火了……”

都市快报橙柿互动
2026-07-02 18:24:23
队报:塞内加尔出局,球队主帅蒂奥遭炮轰

队报:塞内加尔出局,球队主帅蒂奥遭炮轰

懂球帝
2026-07-02 20:07:09
2026-07-03 00:48:49
数据结构和算法
数据结构和算法
专门介绍和写算法题解的号
273文章数 4关注度
往期回顾 全部

科技要闻

马斯克不承认,但SpaceX就该造AI手机

头条要闻

多国元首和高官将参加哈梅内伊葬礼 莫迪受邀无法出席

头条要闻

多国元首和高官将参加哈梅内伊葬礼 莫迪受邀无法出席

体育要闻

韩国人,为什么恨透了洪明甫?

娱乐要闻

众星祝福祖国,曾沛慈原形毕露?

财经要闻

千亿茶市场无赢家:澜沧巨亏 八马停"蹄"

汽车要闻

有纯电有增程 还有二代VLA支持 小鹏MONA L03预售价14.38万起

态度原创

游戏
教育
旅游
健康
军事航空

国产外设厂"宣布"放弃实体手柄!数字化彻底解决漂移

教育要闻

独家探秘!海淀这所人附系热门校,高中新楼长啥样?

旅游要闻

135公里铁丝网围泰山,论证过必要性了吗

这4类消化病患者 吃粘食管住嘴

军事要闻

美军“航母杀手”首次公开 此前从未展示

无障碍浏览 进入关怀版