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

歡迎光臨散文網(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)的評論 (共 條)

分享到微博請遵守國家法律
昌黎县| 黔西县| 自治县| 孟村| 衡东县| 屏山县| 永泰县| 定襄县| 虎林市| 舞钢市| 萝北县| 武定县| 石阡县| 万荣县| 尖扎县| 西吉县| 崇左市| 英吉沙县| 简阳市| 咸宁市| 北票市| 庆阳市| 花垣县| 沈阳市| 德江县| 阿合奇县| 乌拉特后旗| 丹江口市| 永和县| 镇康县| 崇仁县| 平阳县| 霞浦县| 乌拉特前旗| 伊川县| 灵宝市| 大理市| 榆树市| 获嘉县| 麻江县| 焉耆|