配列: C++ での検索による削除


競争力のあるプログラミングのために、C++ で配列の練習をしていました.基本的な操作をコーディングしながら、要素を検索しながら削除するコーディングを考えました.

グーグルに飛び乗って、30分ほど検索した後、複雑なコードを示したGFGの記事を除いて、関連するものは何もありませんでした.しかし、配列に同じ値の要素が含まれている場合、GeeksforGeeks のコードは実行されませんでした.検索に時間を無駄にすることなく、必要なソリューションのアルゴリズムを書き始めました.
そして1時間後、同じ要素を持つ配列と異なる要素を持つ配列で機能するアルゴリズムを書くことができました.

ソリューションがインターネットで利用できるかどうかはわかりません.そこにあるに違いありませんが、見つけるのは困難です.このソリューションの時間の複雑さは本来あるべきほど効率的ではありませんが、私のソリューションがこれに役立つかどうかを確認してください.

私は C++ を使用した DSA の初心者なので、このプログラムには STL 関数は含まれていません.

GFG ソリューションへのリンク: https://www.geeksforgeeks.org/delete-an-element-from-array-using-two-traversals-and-one-traversal/

コード:


int deleteSearch(int a[],int n, int val){

// val is value to be searched
// n is the size of static array

     int i = 0;  
     while( i < n){

         if(a[i] == val) {

             //shifting and deleting elements
             while(i < n){
                 a[i] = a[i+1];
                 i++;

             }

             n--;
             i = 0;

         }

         else 
             i++;

     }
     return n;
 }



プログラムはすべてのケースで機能します.意見、修正、解決策を共有してください.