演算法分析課設(六)跳躍問題

2021-10-14 09:39:32 字數 1032 閱讀 8310

某n*n的棋盤的每個格仔中都有1到9個整數。從棋盤的左上角出發,向右或向下每次跳躍格仔所指定的格數,判斷是否能夠到達棋盤的右下角。如果能,輸出true, 否則輸出false。

輸入:

輸入第一行為整數n,表示棋盤方格的數量。其後的n行,各行均有n個數字。表示在該方格中可以向下或向右跳躍的方格數。

輸出:

輸出1行,true或者false。true表示從左上角可以跳躍到右下角,否則為false。

樣例輸入:

7

2 5 1 6 1 4 1

6 1 1 2 2 9 3

7 2 3 2 1 3 1

1 1 3 1 7 1 2

4 1 2 3 4 1 2

3 3 1 2 3 4 1

1 5 2 9 4 7 1

樣例輸出:

true

1、寫出求解樣例輸入時的求解過程。

2、寫出演算法分析過程,編寫程式求解上述問題,並分析演算法的時間複雜度。

這道題是一維陣列的,但它是前後跳,本題是右下跳,思路是差不多的,類似深度遍歷。

比較簡單,看**就能懂,不分析了。

#include#includeint n,flag = 0;

int i = 0, j = 0;

int **arr;

void jump(int i,int j)

if (i >= 7 || j >= 7)

// 結束條件2:成功了就別再走了

if (flag == 1)

//向右移動

jump(i, j + arr[i][j]);

//向下移動

jump(i + arr[i][j], j);

}int main()

演算法複雜度:

nefu 演算法課設 貪心

遞迴與分治 動態規劃 貪心演算法 回溯演算法 1 問題描述 設有n 個顧客同時等待一項服務。顧客i需要的服務時間為ti,1 i n 應如何安排n個顧客的服務次序才能使平均等待時間達到最小?平均等待時間是n 個顧客等待服務時間的總和除以n。2 程式設計任務 對於給定的n個顧客需要的服務時間,程式設計計...

演算法 跳躍遊戲問題合集

題目 於leetcode 55 55.跳躍遊戲 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 我們可以先跳 1 步,從位置 0 到達 位置 1,然後再從位置...

演算法分析課作業

求陣列中最大的最小數之差 法一 temp 58,65,32,100,12,20,87,3,88 temp.sort print temp print temp.pop temp 0 結果 3,12,20,32,58,65,87,88,100 97法二 temp 58,65,32,100,12,20,...