01 故事起源有這樣的一種矩陣,從左上角開始,順時針從外向里旋轉,數字依次遞增,如果給定任意行n、列m,請問如何輸出這樣的矩陣呢?

如果現在讓你把這個問題描述給其他人,你是不是也會這樣來描述:一直向前走,無路可走向右轉。。。



整個過程拆解為4個步驟:
從矩陣左上角開始向右直到邊界;2)向下;3)向左;4)向上。
重復上面4個步驟,直到填滿整個矩陣。

while(還沒填滿){ //向右直到邊界 j++; //向下直到邊界 i++; //向左直到邊界 j--; //向上直到邊界 i--; } 04 細節從左向右,結束時j超出邊界,需要j--。最上一行已填滿,上邊界下移,同時i也下移。


#defineROW5
#defineCOLUMN5
voidmain(){
intleft=0,right=COLUMN-1,top=0,bottom=ROW-1;
intf[ROW][COLUMN],i=0,j=0,num=1;
while(i>=top&&i<=?bottom?&&?j?>=left&&j<=?right)?{
????????//left->right
while(j<=?right)?{
????????????f[i][j++]?=?num++;
????????}
????????j--;
????????top++;
????????i++;
????????//top->bottom
while(i<=?bottom)?{
????????????f[i++][j]?=?num++;
????????}
????????i--;
????????right--;
????????j--;
????????//right->left
while(j>=left){
f[i][j--]=num++;
}
j++;
bottom--;
i--;
//bottom->top
while(i>=top){
f[i--][j]=num++;
}
i++;
left++;
j++;
}
}
06
總結模擬問題一般都比較簡單,只需要把整個框架過程抽象出來,然后機械的實現即可。但偶爾也會遇到復雜的模擬,一般都是細節涉及的比較多,比如邊界信息太多,或者過程太多等。不過這種問題很適合鍛煉代碼實現能力,多做就能達到“有思想就一定能實現”的狀態。
審核編輯 :李倩
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
模擬
+關注
關注
7文章
1435瀏覽量
84325 -
矩陣
+關注
關注
0文章
429瀏覽量
35006
原文標題:旋轉矩陣
文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
DAC7554如果需要同時輸出多路不同信號,該怎么實現呢?
可以利用fpga驅動DAC7554輸出單路信號,四路單獨輸出,或者四路同時輸出同樣的信號都沒有問題
如果需要同時輸出多路不同信號,該怎么實現呢
發表于 01-06 06:05
ADXL1001的評估板輸出的數據怎么接收呢?
ADXL1001的評估版按照連接方式連接完VCC接電源,GND接地,然后ST STB也接地,Vout應該會輸出結果,輸出的數據怎么接收呢,是根據電平高低來解析嗎還是什么其他的協議這樣,
發表于 12-19 08:28
DAC60501芯片輸出是多少呢?
must be less than 0.7 V for at least 1 ms“ ”When VDD remains greater than 2.2 V, a POR does not occur”是什么意思呢? 設置VDD=3.3V,不對芯片進行操作,芯片輸出是
發表于 11-22 06:51
ADS1256的輸出電路是怎樣設計的呢?
對于ADS1256的輸出電路是怎樣設計的呢?一般ADC測試中為了提高輸出的驅動能力,防止發射和振鈴現象,應該怎樣進行設計輸出電路呢?
發表于 11-22 06:01
tas5612la 24v供電,只使用單通道BTL,這樣連接輸出聲音小,怎么處理?
如圖,24v供電,只使用單通道BTL,這樣連接輸出聲音小,測OUTA對地電壓只有8--10V
因此修改,把另一個通道的電源和部分元件也接上,這樣似乎正常了,OUTA對地有12v,聲音也
發表于 10-14 07:55
盛顯科技:在拼接處理器上配置混合矩陣的步驟是什么?
相信大家都知道,在拼接處理器上配置混合矩陣,主要涉及到將混合矩陣的輸出與拼接處理器的輸入相連接,并通過拼接處理器的軟件或界面進行配置,以實現多屏顯示和視頻信號的靈活處理。在此過程中,了解并熟知拼接
MATLAB(3)--矩陣的引用(sub2ind、ind2sub、reshape函數使用)
的序號為3。
即我們輸入的坐標(1,4),(2,5),(3,1)在矩陣A中的索引號,意思是A矩陣第1行第4個元素的索引值號為16,為什么是16呢?因為MATLAB是按列搜索的,先搜索第一列,然后搜索
發表于 09-06 10:11
MATLAB(2)--MATLAB矩陣的表示
矩陣的建立
利用直接輸入法建立矩陣:將矩陣的元素用中括號括起來,按矩陣的順序輸入各元素,同一行的各元素之間用逗號或者空格分隔,不同的元素之間用分號分隔。
利用已建好的
發表于 09-06 10:05
MATLAB中的矩陣索引
對矩陣進行索引是從矩陣中選擇或修改部分元素的一種方式。MATLAB 有幾種索引樣式,它們不僅功能強大、靈活,而且可讀性強、表現力強。矩陣是 MATLAB 用來組織和分析數據的一個核心組件,索引是以可理解的方式有效操作

機器人的三大矩陣是什么及關系式
在機器人學中,三大矩陣主要指的是與機器人位移、速度和力相關的矩陣,它們分別揭示了機器人在不同空間(如關節空間和作業空間)之間的映射關系。這三大矩陣及其關系式可以概括如下: 1. T矩陣
XLT開關矩陣
開關矩陣 蘇州新利通 系列化開關矩陣是提高被測件測試效率、實現自動化測試的核心設備,是基于標準控制平臺可進行定制化設計的產品。系列化開關矩陣工作頻率范圍覆蓋DC~67GHz,可通過LAN、GPIB

評論