首頁 >後端開發 >php教程 >計算通信的伺服器數量

計算通信的伺服器數量

Linda Hamilton
Linda Hamilton原創
2025-01-24 02:21:09300瀏覽

1267。計算通訊的伺服器

難度:

主題:陣列、深度優先搜尋、廣度優先搜尋、並尋找、矩陣、計數

給你一張伺服器中心的地圖,表示為 m * n 整數矩陣網格,其中 1 表示該單元格上有伺服器,0 表示沒有伺服器。如果兩台伺服器位於同一行或同一列,則稱它們可以進行通訊。

傳回與任何其他伺服器通訊的伺服器數量

範例1:

計算通信的伺服器數量

  • 輸入: grid = [[1,0],[0,1]]
  • 輸出: 0
  • 說明:沒有伺服器可以與其他伺服器通訊。

範例2:

計算通信的伺服器數量

  • 輸入: grid = [[1,0],[1,1]]
  • 輸出: 3
  • 說明:所有三台伺服器都可以與至少一台其他伺服器通訊。

範例 3:

計算通信的伺服器數量

  • 輸入: grid = [[1,1,0,0],[0,0,1,0],[0,0,1,0],[0,0,0,1] ]
  • 輸出: 4
  • 說明:第一行的兩台伺服器可以互相通訊。第三列的兩台伺服器可以互相通訊。右下角的伺服器無法與其他伺服器通訊。

約束:

  • m == grid.length
  • n == grid[i].length
  • 1
  • 1
  • 網格[i][j] == 0 或 1

提示:

  1. 每行每列儲存電腦的編號。
  2. 統計所有未隔離的伺服器。

解:

我們將按照以下步驟操作:

方法:

  1. 統計每行每列的伺服器數:

    • 遍歷網格並計算每行每列有多少個伺服器。這可以使用兩個陣列 rowCount 和 colCount 來完成,其中:
      • rowCount[i] 儲存第 i 行中的伺服器數量。
      • colCount[j] 儲存 j 列中的伺服器數量。
  2. 檢查通訊

    • 對於網格中的每個伺服器,透過檢查 rowCount 和 colCount 來檢查它是否可以與任何其他伺服器通訊。如果其中一個大於 1,則伺服器可以與其他伺服器通訊。
  3. 對通訊的伺服器進行計數:

    • 再次遍歷網格,對於每個伺服器(值為 1 的儲存格),檢查它是否屬於存在多個伺服器的行或列。

讓我們用 PHP 實作這個解:1267。計算通訊的伺服器

<?php /**
 * @param Integer[][] $grid
 * @return Integer
 */
function countServers($grid) {
    ...
    ...
    ...
    /**
     * go to ./solution.php
     */
}

// Test the function with the provided examples
$grid1 = [[1, 0], [0, 1]];
$grid2 = [[1, 0], [1, 1]];
$grid3 = [[1, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 0, 1]];

echo countServers($grid1) . "\n"; // Output: 0
echo countServers($grid2) . "\n"; // Output: 3
echo countServers($grid3) . "\n"; // Output: 4
?>

解釋:

  1. 按行和列計算伺服器:

    • 我們迭代網格並計算每行每列有多少個伺服器(即 1)。我們將這些計數儲存在 rowCount 和 colCount 陣列中。
  2. 辨識通訊伺服器:

    • 計數後,我們迭代每個伺服器(值為 1 的儲存格)。如果伺服器所在行中的伺服器計數 (rowCount[i] > 1) 或其欄位中的伺服器計數 (colCount[j] > 1) 大於 1,則伺服器可以與其他伺服器通訊。然後我們將結果遞增每個通訊伺服器的計數器。
  3. 輸出:

    • 此函數傳回可以與其他伺服器通訊的伺服器總數。

時間複雜度:

  • O(m * n),其中 m 是行數,n 是列數。這是因為我們迭代網格兩次:一次是為了計算行和列中的伺服器,一次是為了檢查通訊。

該解決方案可以在給定的約束條件下有效地處理問題。

聯絡連結

如果您發現本系列有幫助,請考慮在 GitHub 上給 存儲庫 一個星號或在您最喜歡的社交網絡上分享該帖子? 。您的支持對我來說意義重大!

如果您想要更多類似的有用內容,請隨時關注我:

  • 領英
  • GitHub

以上是計算通信的伺服器數量的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn