二維陣列輸出 面試演算法題

2021-08-28 13:28:10 字數 1139 閱讀 8861

實現陣列的特殊輸出方式

陣列是我們最熟悉的順序結構,遍歷陣列也有很多方法,但是像這樣的二維陣列我們應該怎麼遍歷呢?

我們仔細觀察會發現規律,橫縱座標之和是由規律且有範圍的,這就是我們的切入點。

先試著寫**,以下是第一次寫的**

沒錯,重複**太多。多次呼叫迴圈,複雜度太高。但是起碼是實現了,不過這種演算法確實是沒什麼實用價值

下面是優化的**

public static void bianli2(int a) {

int num=0;

int m=a.length; //m代表行數

int n=a[0].length; //n代表列數

是不是驚呆了,少寫了很多很多**。複雜度也大大降低。下面還是來分析一下**。

我們還是抓住座標特點,根據座標的和來輸出。對於乙個二維陣列來說,我們先x軸來當作標準來輸出,同時注意控制x和y的範圍。

important:

x<=m&&x<=i(也就是x+y)&&(i-x)

這樣一會發現還有一部分沒有輸出完,然後再通過y進行控制,同時通過控制(x+y)使之前的不會再次輸出。然後下面的輸出完就大功告成了。

總結:

演算法 二維陣列

1.最長公共子串行 總結 就是在邊上加一圈零,比較相對應的字元,相等,值就等於左上角的值,不相等,值就去左邊和上邊的最大值。2.字串相似度 static int martix static string str1 dhongda static string str2 fehongda protect...

演算法 二維陣列

1.最長公共子串行 總結 就是在邊上加一圈零,比較相對應的字元,相等,值就等於左上角的值,不相等,值就去左邊和上邊的最大值。2.字串相似度 static int martix static string str1 dhongda static string str2 fehongda protect...

C語言面試演算法題(二)

1.寫乙個函式,它的原形是int continumax char outputstr,char intputstr 功能 在字串中找出連續最長的數字串,並把這個串的長度返回,並把這個最長數字串付給其中乙個函式引數outputstr所指記憶體。例如 abcd12345ed125ss123456789 ...