實現陣列的特殊輸出方式
陣列是我們最熟悉的順序結構,遍歷陣列也有很多方法,但是像這樣的二維陣列我們應該怎麼遍歷呢?
我們仔細觀察會發現規律,橫縱座標之和是由規律且有範圍的,這就是我們的切入點。
先試著寫**,以下是第一次寫的**
沒錯,重複**太多。多次呼叫迴圈,複雜度太高。但是起碼是實現了,不過這種演算法確實是沒什麼實用價值
下面是優化的**
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 ...