C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#を使用して行ごとに増加した行列を検索するにはどうすればよいですか?


この問題の根本的な解決策は、入力行列に格納されているすべての要素をスキャンして、指定されたキーを検索することです。行列のサイズがMxNの場合、この線形探索アプローチにはO(MN)時間がかかります。

検索要素が右上の要素よりも大きい場合は、マトリックスを右上からスキャンする必要があります。その後、行をインクリメントするか、列をデクリメントします。以下のコードは、2次元配列と検索キーを入力として受け取り、見つかった検索キーの成功または失敗に応じてtrueまたはfalseを返す関数SearchRowwiseIncrementedMatrixを開発します。

コード

public class Matrix{
   public bool SearchRowwiseIncrementedMatrix(int[,] mat, int searchElement){
      int row = getMatrixRowSize(mat);
      int col = getMatrixColSize(mat) - 1;
      int r = 0;

      while (col >= 0 && r < row){
         if (mat[r, col] == searchElement){
            return true;
         }
         else if (searchElement < mat[r, col]){
            col--;
         }
         else{
            r++;
         }
      }
      return false;
   }

   private int getMatrixRowSize(int[,] mat){
      return mat.GetLength(0);
   }
   private int getMatrixColSize(int[,] mat){
      return mat.GetLength(1);
   }
}

static void Main(string[] args){
   Matrix m = new Matrix();
   int[,] mat = new int[3, 4] { { 1, 7, 10, 19 }, { 2, 8, 11, 20 }, { 3, 9, 12, 21 } };
   Console.WriteLine(m.SearchRowwiseIncrementedMatrix(mat, 11));
}

出力

TRUE

  1. Windowsで検索する方法

    Windowsには、PCのコンテンツを検索できる検索メニューが常にあります。 Windows 11では、Microsoftは検索機能にさらに多くの機能を追加しました。スタートメニュー、ウィジェット、Microsoft Store、および関連するクラウドアカウントから検索できるようになりました。ここでは、Windows10およびWindows11でアプリ、設定、ファイル、およびフォルダーを検索するさまざまな方法をすべて説明します。 1。 Windows検索ボックスを使用して検索 Windows 10と比較すると、Windows 11のユニバーサル検索ボックスは、検索結果の精度と画面上での表示の

  2. 画像や動画を使って Google で検索する方法

    Google は、世界中で広く使用されている Web ブラウザーです。キーワードを使用したり、画像や情報に関連する検索結果を取得したりするなどの優れた機能をユーザーに提供します. しかし、あなたがしたい場合 画像や動画を使って Google で検索しますか? キーワードを使用する代わりに、Google で画像や動画を簡単に逆検索できます。今回は、画像や動画を使って Google で簡単に検索できる方法をリストアップしています。 画像や動画を使って Google で検索する 4 つの方法 ユーザーが画像や動画を使用して Google で検索する主な理由は、その特定の画像や動画の出所を知る