0

上記と同様に満たされた N*N スパイラル マトリックスの場合、[R,C] 位置に存在する要素を見つけます。ここで、R=行の番号、C=列の番号です。

私はまだ初心者なので、何も進んでください。

らせん行列と混同しています。これも機能しますが、通常の行列用に設計されており、らせんである場合の最適なソリューションを理解したいと思います。ありがとうございました。

#include<stdio.h>

 /* Searches the element x in mat[][]. If the element is found, 
    then prints its position and returns true, otherwise prints 
    "not found" and returns false */
int search(int mat[4][4], int n, int x)
{
   int i = 0, j = n-1;  //set indexes for top right element
   while ( i < n && j >= 0 )
   {
      if ( mat[i][j] == x )
      {
         printf("\n Found at %d, %d", i, j);
         return 1;
      }
      if ( mat[i][j] > x )
        j--;
      else //  if mat[i][j] < x
        i++;
   }

   printf("\n Element not found");
   return 0;  // if ( i==n || j== -1 )
}
4

1 に答える 1