最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

知名互聯(lián)網(wǎng)公司校招中常見的算法題(9-10)

2023-04-26 06:41 作者:good7ob  | 我要投稿

題目九:島嶼數(shù)量

給定一個由 '1'(陸地)和 '0'(水)組成的二維網(wǎng)格,計算島嶼的數(shù)量。一個島被水包圍,并且通過水平方向或豎直方向上相鄰的陸地連接而成。你可以假設網(wǎng)格的四個邊均被水包圍。

解決思路:

我們可以用深度優(yōu)先搜索(DFS)來解決這個問題。我們遍歷整個網(wǎng)格,如果遇到一個陸地('1'),就用 DFS 將與該陸地相鄰的陸地全部標記為已訪問。最后遍歷完整個網(wǎng)格后,島嶼的數(shù)量就是 DFS 的執(zhí)行次數(shù)。

代碼實現(xiàn):

public int numIslands(char[][] grid) {
? int m = grid.length;
? int n = grid[0].length;
? int count = 0;
? for (int i = 0; i < m; i++) {
? ? ? for (int j = 0; j < n; j++) {
? ? ? ? ? if (grid[i][j] == '1') {
? ? ? ? ? ? ? dfs(grid, i, j);
? ? ? ? ? ? ? count++;
? ? ? ? ? }
? ? ? }
? }
? return count;
}
public void dfs(char[][] grid, int i, int j) {
? int m = grid.length;
? int n = grid[0].length;
? if (i < 0 || i >= m || j < 0 || j >= n || grid[i][j] == '0') {
? ? ? return;
? }
? grid[i][j] = '0';
? dfs(grid, i + 1, j);
? dfs(grid, i - 1, j);
? dfs(grid, i, j + 1);
? dfs(grid, i, j - 1);
}

題目十:二叉樹的最近公共祖先

給定一個二叉樹,找到該樹中兩個指定節(jié)點的最近公共祖先。

解決思路:

我們可以用遞歸的方法來解決這個問題。如果當前節(jié)點是 p 或 q,那么最近公共祖先就是當前節(jié)點。否則,我們分別在左子樹和右子樹中查找 p 和 q,如果左子樹中不存在 p 或 q,那么最近公共祖先一定在右子樹中,反之亦然。

代碼實現(xiàn):

public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
? if (root == null || root == p || root == q) {
? ? ? return root;
? }
? TreeNode left = lowestCommonAncestor(root.left, p, q);
? TreeNode right = lowestCommonAncestor(root.right, p, q);
? if (left != null && right != null) {
? ? ? return root;
? }
? if (left != null) {
? ? ? return left;
? }
? if (right != null) {
? ? ? return right;
? }
? return null;
}

以上是關于常見算法題的解決思路、代碼實現(xiàn)以及實際案例的詳細講解。對于互聯(lián)網(wǎng)公司的校招來說,掌握這些算法題可以幫助我們更好地應對面試。當然,還需要多多練習,才能真正掌握這些算法。同時,我們還需要了解一些常見的數(shù)據(jù)結構和算法,比如哈希表、堆排序、快速排序等等。只有全面掌握了這些知識,我們才能在面試中更加游刃有余。


知名互聯(lián)網(wǎng)公司校招中常見的算法題(9-10)的評論 (共 條)

分享到微博請遵守國家法律
泰和县| 雷波县| 伊通| 彭州市| 武宣县| 通海县| 双城市| 双鸭山市| 河津市| 汉寿县| 长海县| 固安县| 新巴尔虎右旗| 余江县| 宜州市| 汝南县| 钦州市| 玉龙| 寿阳县| 昭觉县| 兰溪市| SHOW| 昂仁县| 盱眙县| 通渭县| 屏南县| 清镇市| 子洲县| 衡阳县| 永康市| 天等县| 微山县| 交口县| 清水河县| 铜川市| 翁牛特旗| 龙山县| 西乌珠穆沁旗| 襄汾县| 高州市| 克什克腾旗|