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

C#を使用して、指定された整数の配列からすべてのゼロを配列の最後に移動するにはどうすればよいですか?


メソッドMoveZerosを作成し、配列をトラバースして、配列内のゼロの数を数えます。カウントサイズに基づいて、すべての最終セルをゼロにします。配列の長さがnullまたは空の場合、処理せずに戻ります。最終結果はnums配列になります。配列を1回トラバースしているため、時間計算量はO(N)です。

時間計算量 − O(N)

スペースの複雑さ − o(1)

public class Arrays{
   public void MoveZeros(int[] nums){
      if (nums == null || nums.Length == 0){
         return;
      }
      int count = 0;
      for (int i = 0; i < nums.Count(); i++){
         if (nums[i] != 0){
            nums[count] = nums[i];
            count++;
         }
      }
      for (int i = count; i < nums.Length; i++){
         nums[i] = 0;
      }
   }
}

static void Main(string[] args){
   int[] nums = { 0, 1, 0, 3, 12 };
   s.MoveZeros(nums);
   foreach (var item in nums){
      Console.WriteLine(item);
   }
}

出力

[1,3,12,0,0]

  1. 指定された配列にPythonの整数の約数がすべて含まれているかどうかを確認します

    配列numsがあるとすると、この配列に整数の約数がすべて含まれているかどうかを確認する必要があります。 したがって、入力がnums =[1、2、3、4、6、8、12、24]のような場合、これらは24の約数であるため、出力はTrueになります。 これを解決するには、次の手順に従います- 最大:=最大数 temp:=新しいリスト 範囲1から最大値の平方根までのiについては、 最大値がiで割り切れる場合、 tempの最後にiを挿入 (maximum / i)の商がiと同じでない場合、 温度の最後に(maximum / i)の商を挿入します tempのサイズがnumsのサイズと同じで

  2. Pythonのリスト内包表記を使用して、すべてのゼロを配列の最後に移動します

    数値のリストが与えられたら、リスト内包表記を使用してすべてのゼロを最後に移動します。たとえば、[1、3、0、4、0、5、6、0、7]の結果は[1、3、4、5、6、7、0、0、0]です。 これは、リスト内包表記を使用した1行のコードです。結果を得るには、次の手順を参照してください。 番号のリストを初期化します。 リストから非ゼロを生成し、リストからゼロを生成します。両方を追加します。結果をリストに保存します。 新しいリストを印刷します。 例 # initializing a list numbers = [1, 3, 0, 4, 0, 5, 6, 0, 7] # movi