Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#을 사용하여 배열 끝에 도달하는 데 필요한 최소 점프 수를 찾는 방법은 무엇입니까?

<시간/>

첫 번째 요소에서 시작하여 첫 번째 요소에서 도달할 수 있는 모든 요소를 ​​반복적으로 호출할 수 있습니다. 처음에서 끝까지 도달하기 위한 최소 점프 수는 처음에서 도달할 수 있는 요소에서 끝까지 도달하는 데 필요한 최소 점프 수를 사용하여 계산할 수 있습니다.

배열 =={1, 3, 6, 3, 2, 3, 6, 8, 9, 5};

필요한 단계 수는 4입니다.

using System;
namespace ConsoleApplication{
   public class Arrays{
      public int MinJumps(int[] arr, int l, int h){
         if (h == l)
            return 0;
         if (arr[l] == 0)
            return int.MaxValue;
         int min = int.MaxValue;
         for (int i = l + 1; i <= h && i <= l + arr[l]; i++){
            int jumps = MinJumps(arr, i, h);
            if (jumps != int.MaxValue && jumps + 1 < min)
               min = jumps + 1;
         }
         return min;
      }
   }
   class Program{
      static void Main(string[] args){
         Arrays a = new Arrays();
         int[] arrm = { 1, 3, 6, 3, 2, 3, 6, 8, 9, 5 };
         int n = arrm.Length;
         Console.Write(" Minimum number of jumps to reach end is " + a.MinJumps(arrm, 0, n - 1));
      }
   }
}

출력

4