1267年。通信するサーバーを数える
難易度: 中
トピック: 配列、深さ優先検索、幅優先検索、和集合検索、行列、カウント
m * n 整数行列グリッドとして表されるサーバー センターのマップが与えられます。1 はそのセル上にサーバーがあることを意味し、0 はサーバーがないことを意味します。 2 つのサーバーは、同じ行または同じ列にある場合に通信するといわれています。
他のサーバーと通信するサーバーの数を返します。
例 1:
- 入力: グリッド = [[1,0],[0,1]]
- 出力: 0
- 説明: どのサーバーも他のサーバーと通信できません。
例 2:
- 入力: グリッド = [[1,0],[1,1]]
- 出力: 3
- 説明: 3 つのサーバーはすべて、少なくとも 1 つの他のサーバーと通信できます。
例 3:
- 入力: グリッド = [[1,1,0,0],[0,0,1,0],[0,0,1,0],[0,0,0,1] ]
- 出力: 4
- 説明: 最初の行の 2 つのサーバーは相互に通信できます。 3 列目の 2 つのサーバーは相互に通信できます。右下隅のサーバーは他のサーバーと通信できません。
制約:
- m == グリッドの長さ
- n == グリッド[i].length
- 1
- 1
- グリッド[i][j] == 0 または 1
ヒント:
- 各行と列にコンピュータの番号を格納します。
- 分離されていないすべてのサーバーをカウントします。
解決策:
次の手順に従います:
アプローチ:
-
各行と列のサーバー数を数える:
- グリッドを走査し、各行と各列に存在するサーバーの数を計算します。これは、2 つの配列 rowCount とcolCount を使用して実行できます。
- rowCount[i] には、行 i のサーバーの数が格納されます。
- ColCount[j] は列 j にサーバーの数を格納します。
- グリッドを走査し、各行と各列に存在するサーバーの数を計算します。これは、2 つの配列 rowCount とcolCount を使用して実行できます。
-
通信をチェック:
- グリッド内の各サーバーについて、rowCount とcolCount を確認して、他のサーバーと通信できるかどうかを確認します。どちらかが 1 より大きい場合、サーバーは他のサーバーと通信できます。
-
通信するサーバーを数える:
- グリッドを再度横断し、各サーバー (値 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) の数を数えます。これらのカウントを rowCount 配列とcolCount 配列に保存します。
-
通信サーバーの識別:
- カウント後、各サーバー (値 1 のセル) を反復処理します。サーバーは、その行のサーバー数 (rowCount[i] > 1) またはその列のサーバー数 (colCount[j] > 1) が 1 より大きい場合、他のサーバーと通信できます。その後、結果をインクリメントします。通信する各サーバーのカウンター。
-
出力:
- この関数は、他のサーバーと通信できるサーバーの総数を返します。
時間計算量:
- O(m * n)、ここで、m は行数、n は列数です。これは、グリッドを 2 回反復処理するためです。1 回目は行と列でサーバーをカウントし、もう 1 回目は通信をチェックします。
このソリューションは、指定された制約内で問題を効率的に処理します。
連絡先リンク
このシリーズが役立つと思われた場合は、GitHub で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!
このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:
- GitHub
以上が通信するサーバーの数を数えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています

この記事では、Laravel Webフレームワークの通知システムを検討します。 Laravelの通知システムを使用すると、さまざまなチャネルでユーザーに通知を送信できます。今日は、通知ovを送信する方法について説明します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック









