(4.1)節:順時針列印二維陣列
1、題幹:構建二維陣列,按照順時針的方向列印
2、解題思路:不斷對陣列的外圍進行列印,外圍不斷變小。
3、關鍵**:
int h=0,l=1;//最大行列座標 ,根據實際定值
int h=0,l=0;//起始行列座標
int i=h,j=l;
while(l<=l||h<=h)
j--;h++;i=h;
cout
i--;l--;j=l;
cout=l&&h<=h)//列印最後一行
j++;h--; i=h;
cout=h)//列印第一列
i++;l++;j=l;
cout
(4.2)節:0所在的行列清0
1、題幹:
2、解答思路:要避免邊掃瞄邊清0,要先掃瞄後記錄0所在的行和列,再清0
3、關鍵**:
struct str
a[10];
int k=0;
int t[5][5]=;
void out(int h,int l)
//輸出原來陣列
for(int i=0;i<=l;i++)
for(int j=0;j<=h;j++)
if(t[j][i]==0)
//記錄0的位置
for(int i=0;ifor(int j=0;j<=h;j++)
t[a[i].l][j]=0;///////////////列0
for(int i=0;ifor(int j=0;j<=l;j++)
t[j][a[i].h]=0;//////////////行0
cout
//輸出新的陣列
}
(4.3)節:z形列印二維陣列
1、題幹:
2、解答思路:上坡的,斜上斜下不可以走,右可以就走右,不行就走下,下坡的,斜上斜下不可以,下可以的就走下,不行就走右,
3、關鍵**:
int num [3][5]=,
,
,
};
int h=2,l=4;//邊界
int h=0,l=0;//所在位置
int t=1;//判斷上坡還是上坡
while(true)
else if(h-1<0&&l+1<=l&&t==1)//右
else if(h-1<0&&l+1>l&&t==1)
//下
//下坡
else if(h+1<=h&&l-1>=0&&t==0)//下斜
else if(l-1<0&&h+1<=h&&t==0) //下
else if(h+1>h&&l+1<=l&&t==0)//右
else
break;//到達終點
}
(4.4)節:邊界為1的最大矩陣
(4.5)節:邊界為1的最大矩陣優化(上)
(4.6)節:邊界為1的最大矩陣優化(下)
1、題幹:
(4.7)節 子陣列最大累加和
1、題幹:
2、解答思路:題意要求我們找出和最大的子陣列,我們可以讓前面相加,如果前面和小於0,那麼前面就可以作為乙個邊界,然後找出最大的sun
3、關鍵**:
int sun=a[0];
int max=a[0];
int l=0,r=0;
for(int i=1;i<10;i++)
if(sun>=0)
sun=sun+a[i];
else
if(sun>max)
{max=sun;
r=i;
(4.9)節 矩陣運算
第4章 陣列
1 陣列儲存的是相同型別的一組元素 double arr 2 陣列的定義型別可以是任意型別,包含基本型別或引用型別 string arr person arr int arr person arr 3 陣列屬於引用型別,引用儲存在棧中,值儲存在堆中,又稱為物件。4 陣列的成員如果不賦值,有預設值。b...
C Primer 第3章 3 6 多維陣列
1.多維陣列其實就是陣列中巢狀陣列,陣列的元素還是陣列,這樣巢狀起來就沒有限制,一般稱二維陣列的第一維叫做行,第二位叫做列,其實學 int a 3 4 int a 3 4 2 int a 2 2 2 2 俄羅斯套娃,可以巢狀很多層,2.使用初始化列表對多維陣列進行初始化,如果初始化列表不全則後面的元...
演算法第4章實踐報告
實踐題目 程式儲存問題 問題描述 設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是 li,1 i n。程式儲存問題要求確定這n 個程式在磁帶上的乙個儲存方案,使得能夠在磁帶上儲存盡可能多的程式。對於給定的n個程式存放在磁帶上的長度,計算磁帶上最多可以儲存的程式數。第一行是2 個正整...