01 故事起源有這樣的一種矩陣,從左上角開始,順時(shí)針從外向里旋轉(zhuǎn),數(shù)字依次遞增,如果給定任意行n、列m,請(qǐng)問如何輸出這樣的矩陣呢? ? ?02 分析這個(gè)問題第一眼就覺得很簡(jiǎn)單,為啥呢,因?yàn)橐?guī)律很明顯,問題描述都已經(jīng)說的很清晰了,只要按照要求模擬一遍就行了。
如果現(xiàn)在讓你把這個(gè)問題描述給其他人,你是不是也會(huì)這樣來描述:一直向前走,無路可走向右轉(zhuǎn)。。。 ? ?03 模擬啥是模擬呢,模擬就是按照你的想法,機(jī)械的執(zhí)行命令就可以了,沒有啥算法可言,就像這個(gè)問題一樣。 ?不過機(jī)器并不能聽懂你的高級(jí)語言,所以需要翻譯一下。 ?說機(jī)話
整個(gè)過程拆解為4個(gè)步驟:
從矩陣左上角開始向右直到邊界;2)向下;3)向左;4)向上。
重復(fù)上面4個(gè)步驟,直到填滿整個(gè)矩陣。 ?于是我們就得到了初步的框架:
while(還沒填滿){ //向右直到邊界 j++; //向下直到邊界 i++; //向左直到邊界 j--; //向上直到邊界 i--; } 04 細(xì)節(jié)從左向右,結(jié)束時(shí)j超出邊界,需要j--。最上一行已填滿,上邊界下移,同時(shí)i也下移。 ?從上向下,結(jié)束時(shí)i超出邊界,需要i--。最右一列已填滿,右邊界左移,同時(shí)j也左移。 ?其余2個(gè)過程同理。 05 代碼實(shí)現(xiàn)
#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
總結(jié)模擬問題一般都比較簡(jiǎn)單,只需要把整個(gè)框架過程抽象出來,然后機(jī)械的實(shí)現(xiàn)即可。但偶爾也會(huì)遇到復(fù)雜的模擬,一般都是細(xì)節(jié)涉及的比較多,比如邊界信息太多,或者過程太多等。不過這種問題很適合鍛煉代碼實(shí)現(xiàn)能力,多做就能達(dá)到“有思想就一定能實(shí)現(xiàn)”的狀態(tài)。
審核編輯 :李倩
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
模擬
+關(guān)注
關(guān)注
7文章
1426瀏覽量
83938 -
矩陣
+關(guān)注
關(guān)注
0文章
423瀏覽量
34581
原文標(biāo)題:旋轉(zhuǎn)矩陣
文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
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”是什么意思呢? 設(shè)置VDD=3.3V,不對(duì)芯片進(jìn)行操作,芯片輸出是
發(fā)表于 11-22 06:51
盛顯科技:在拼接處理器上配置混合矩陣的步驟是什么?
相信大家都知道,在拼接處理器上配置混合矩陣,主要涉及到將混合矩陣的輸出與拼接處理器的輸入相連接,并通過拼接處理器的軟件或界面進(jìn)行配置,以實(shí)現(xiàn)多屏顯示和視頻信號(hào)的靈活處理。在此過程中,了解并熟知拼接
MATLAB(6)--特殊矩陣
通用的特殊矩陣
zero函數(shù):產(chǎn)生全是0矩陣,即零矩陣。
ones函數(shù):產(chǎn)生全是1矩陣,即幺矩陣。
eyes函數(shù):產(chǎn)生對(duì)角線為1的
發(fā)表于 09-06 10:24
MATLAB(2)--MATLAB矩陣的表示
矩陣的建立
利用直接輸入法建立矩陣:將矩陣的元素用中括號(hào)括起來,按矩陣的順序輸入各元素,同一行的各元素之間用逗號(hào)或者空格分隔,不同的元素之間用分號(hào)分隔。
利用已建好的
發(fā)表于 09-06 10:05
MATLAB中的矩陣索引
對(duì)矩陣進(jìn)行索引是從矩陣中選擇或修改部分元素的一種方式。MATLAB 有幾種索引樣式,它們不僅功能強(qiáng)大、靈活,而且可讀性強(qiáng)、表現(xiàn)力強(qiáng)。矩陣是 MATLAB 用來組織和分析數(shù)據(jù)的一個(gè)核心組件,索引是以可理解的方式有效操作
XLT開關(guān)矩陣
開關(guān)矩陣 蘇州新利通 系列化開關(guān)矩陣是提高被測(cè)件測(cè)試效率、實(shí)現(xiàn)自動(dòng)化測(cè)試的核心設(shè)備,是基于標(biāo)準(zhǔn)控制平臺(tái)可進(jìn)行定制化設(shè)計(jì)的產(chǎn)品。系列化開關(guān)矩陣工作頻率范圍覆蓋DC~67GHz,可通過LAN、GPIB
STM32矩陣按鍵造成IO口的損壞的原因?
看了網(wǎng)上的4*4矩陣按鍵,不帶外部中斷,可實(shí)現(xiàn)多個(gè)按鍵同時(shí)按下。發(fā)現(xiàn)行線都配置成GPIO_Mode_Out_PP推挽輸出,我認(rèn)為當(dāng)同一個(gè)列線上有兩個(gè)按鍵同時(shí)按下時(shí)就會(huì)出現(xiàn)問題。
因?yàn)?b class='flag-5'>矩陣按鍵必然存在
發(fā)表于 05-17 06:02
單片機(jī)接矩陣鍵盤GPIO應(yīng)該怎么設(shè)置?是用上拉輸出或輸入模式嗎?
單片機(jī)接矩陣鍵盤GPIO應(yīng)該怎么設(shè)置?是用上拉輸出或輸入模式嗎?
發(fā)表于 05-11 08:38
stop mode下怎么實(shí)現(xiàn)按下矩陣鍵盤的任意鍵將系統(tǒng)喚醒呢?
請(qǐng)問有沒有大佬知道stop mode下怎么實(shí)現(xiàn)按下矩陣鍵盤的任意鍵將系統(tǒng)喚醒呢?用WAKEUP 能實(shí)現(xiàn)嗎?
發(fā)表于 05-06 07:08
無縫拼接矩陣在監(jiān)控中心的應(yīng)用案例
訊維無縫拼接矩陣在監(jiān)控中心的應(yīng)用案例相當(dāng)廣泛,其高效的拼接技術(shù)和出色的顯示效果為監(jiān)控工作提供了極大的便利。以下是一些具體的應(yīng)用案例: 城市交通監(jiān)控中心:在大型城市的交通監(jiān)控中心,訊維無縫拼接矩陣能夠
spwm調(diào)制如何改變輸出電壓幅值和輸出電壓頻率呢?
spwm調(diào)制如何改變輸出電壓幅值和輸出電壓頻率呢? SPWM調(diào)制,即正弦脈寬調(diào)制,是一種常見的PWM(脈寬調(diào)制)技術(shù),常用于交流變頻調(diào)速、直流電壓變換等領(lǐng)域。SPWM調(diào)制可以通過改變脈沖寬度和脈沖
變壓器輸出電壓是否可以隨意調(diào)低呢?
變壓器輸出電壓是否可以隨意調(diào)低呢? 變壓器輸出電壓的調(diào)整是通過改變輸入電壓或改變變壓器的線圈比例來實(shí)現(xiàn)的。雖然從理論上來說,可以通過相應(yīng)的方式調(diào)整變壓器輸出電壓,但在實(shí)際應(yīng)用中卻有一些
無縫高清矩陣切換器和傳統(tǒng)的矩陣切換器有什么區(qū)別?
。 分辨率調(diào)節(jié):無縫高清矩陣切換器可以固定分辨率,也可以設(shè)置每個(gè)端口的分辨率都不一樣,更具靈活性。相比之下,傳統(tǒng)矩陣切換器的分辨率調(diào)整存在限制,例如在輸入和輸出設(shè)備分辨率不同時(shí),可能只能選擇兩者中較低的分辨率
協(xié)方差矩陣和相關(guān)系數(shù)矩陣的轉(zhuǎn)化
協(xié)方差矩陣和相關(guān)系數(shù)矩陣是統(tǒng)計(jì)學(xué)中常用的概念,在多變量統(tǒng)計(jì)分析中起著至關(guān)重要的作用。 在進(jìn)行多變量統(tǒng)計(jì)分析時(shí),我們通常會(huì)涉及多個(gè)變量之間的關(guān)系和相互作用。協(xié)方差矩陣和相關(guān)系數(shù)矩陣就是用
評(píng)論