如何使用 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP