LeetCode:Spiral Matrix I II

Spiral Matrix

Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.

For example,
Given the following matrix:

[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]
]

You should return [1,2,3,6,9,8,7,4,5].

?

打印螺旋矩陣

逐個環的打印, 對于m *n的矩陣,環的個數是 (min(n,m)+1) / 2。對于每個環順時針打印四條邊。

注意的是:最后一個環可能只包含一行或者一列數據

class Solution {
public:vector<int> spiralOrder(vector<vector<int> > &matrix) {int m = matrix.size(), n;if(m != 0)n = matrix[0].size();int cycle = m > n ? (n+1)/2 : (m+1)/2;//環的數目vector<int>res;int a = n, b = m;//a,b分別為當前環的寬度、高度for(int i = 0; i < cycle; i++, a -= 2, b -= 2){//每個環的左上角起點是matrix[i][i],下面順時針依次打印環的四條邊for(int column = i; column < i+a; column++)res.push_back(matrix[i][column]);for(int row = i+1; row < i+b; row++)res.push_back(matrix[row][i+a-1]);if(a == 1 || b == 1)break; //最后一個環只有一行或者一列for(int column = i+a-2; column >= i; column--)res.push_back(matrix[i+b-1][column]);for(int row = i+b-2; row > i; row--)res.push_back(matrix[row][i]);}return res;}
};

?


Spiral Matrix II

Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

For example,
Given n = 3,

You should return the following matrix:

[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]
]

本質上和上一題是一樣的,這里我們要用數字螺旋的去填充矩陣。同理,我們也是逐個環的填充,每個環順時針逐條邊填充???????????????? 本文地址

class Solution {
public:vector<vector<int> > generateMatrix(int n) {vector<vector<int> > matrix(n, vector<int>(n));int a = n;//a為當前環的邊長int val = 1;for(int i = 0; i < n/2; i++, a -= 2){//每個環的左上角起點是matrix[i][i],下面順時針依次填充環的四條邊for(int column = i; column < i+a; column++)matrix[i][column] = val++;for(int row = i+1; row < i+a; row++)matrix[row][i+a-1] = val++;for(int column = i+a-2; column >= i; column--)matrix[i+a-1][column] = val++;for(int row = i+a-2; row > i; row--)matrix[row][i] = val++;}if(n % 2)matrix[n/2][n/2] = val;//n是奇數時,最后一個環只有一個數字return matrix;}
};

?

【版權聲明】轉載請注明出處:http://www.cnblogs.com/TenosDoIt/p/3774747.html

轉載于:https://www.cnblogs.com/TenosDoIt/p/3774747.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375809.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375809.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375809.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TCP為什么需要三次握手和四次揮手

網上已經有很多解釋了&#xff0c;就不瞎說了&#xff0c;Mark一些鏈接作為自己的學習筆記吧。 學習參考鏈接1 學習參考鏈接2 學習參考鏈接3 學習參考鏈接4 為什么要3次握手 防止已過期的連接請求報文突然又傳送到服務器&#xff0c;因而產生錯誤。 Client發生一個請求連…

不屬于個人計算機范圍的是,計算機應用基礎模擬試卷2

一、1.單項選擇題單項選擇題每小題1分。在每小題列出的四個備選項中只有一個是符合題目要求的&#xff0c;請將其選出并將“答題卡”的相應代碼涂黑。未涂、錯涂或多涂均無分。0. 個人計算機屬于A&#xff0e;小巨型機B&#xff0e;小型計算機C&#xff0e;微型計算機D&#xf…

Python實驗:關燈游戲

文章目錄 前言一、設計表二、關鍵代碼三、運行結果小地圖&#xff0c;容易難度&#xff1a;中地圖&#xff0c;中等難度&#xff1a;大地圖&#xff0c;困難難度&#xff1a; 四、完整代碼鏈接總結 前言 這是一個Python實驗作業&#xff0c;內容如下&#xff1a; 題目要求&am…

解決Ubuntu14.04在外接顯示器不能指定問題的最佳分辨率

通常這種情況發生。在System Settings -> display 你會發現多出了一個 unknown display。這往往是因為你使用質量低劣的視頻電纜&#xff0c;例如&#xff0c;幾美元VGA線。解決方案有&#xff12;&#xff0c;質量好的一個改變鋼帶&#xff08;有磁場干擾&#xff09;VGA線…

基礎練習 - 數值交換

題目 1 聲明兩個變量&#xff1a;int n1 10,n2 20,要求將兩個變量叫喚&#xff0c;最后輸出n1為20,n2為10. (擴展*: 不使用第三個變量如何交換) 解決方案 基本方法 private static void BasicMethod(){int n1 10;int n2 20;Console.WriteLine("n1…

python計算圓的面積

用Python創建一個腳本&#xff0c;要求&#xff1a; 能計算半徑為2的圓的面積保留10位小數可以直接執行 #!/usr/bin/env python3 import math print("Area is:{:.10f}".format(math.pi*4))計算圓的面積要用到pi&#xff0c;所以我們引用模塊math

Visual Studio 配色方案

字體&#xff1a;Fixedsys Excelsior 字體大小&#xff1a;12 配色方案&#xff1a;http://studiostyles.info 導入步驟&#xff1a; 工具->導入和導出設置->導入選定的環境設置->否&#xff0c;僅導入新設置->“瀏覽”->下載的vssetings文件->完成。 轉載于…

昆明學院計算機專業在哪個校區,昆明學院有幾個校區及校區地址

昆明學院有幾個校區及校區地址2017-06-19 11:15:56文/韓競儀最近有很多考生和家長咨詢小編&#xff0c;昆明學院有幾個校區&#xff0c;今年新生會被分配到哪個校區?哪個校區好?等相關問題&#xff0c;下面小編統一回復一下考生們的問題。昆明學院有3個校區&#xff0c;分別是…

python列表總結

列表方法append()&#xff1a;在列表末尾添加元素列表方法insert()&#xff1a;在列表任意位置插入元素&#xff0c;a.insert(0,1)&#xff0c;在列表的0號位置插入元素1.列表方法count(s)&#xff1a;返回s在列表中出現的次數列表方法remove(s)&#xff1a;移除列表中的第一個…

Swift基本語法

Swift基本語法 原文:Swift基本語法Swift基本語法 簡介 1.什么是Swift Swift是蘋果于2014年WWDC&#xff08;蘋果開發者大會&#xff09;發布的全新編程語言 Swift在天朝譯為“雨燕” 跟Objective-C一樣&#xff0c;可以用于開發iOS、Mac應用程序 蘋果從2010年7月開始設計Swift語…

2018華工計算機應用基礎作業,計算機應用基礎平時作業2019

計算機應用基礎平時作業2019Tag內容描述&#xff1a;1、1.簡述啟動控制面板的常用方法。(至少列出三種) 答&#xff1a;常用打開控制面板的方法&#xff1a;1)點開始&#xff0c;選擇控制面板打開&#xff1b;2)打開我的電腦&#xff0c;選擇控制面板&#xff1b;3)點開始運行&…

計算機系統組織結構,第4章 操作系統計算機組織結構.ppt

第4章 操作系統計算機組織結構第4章 計算機組織結構 前言 操作系統提供了抽象以簡化對硬件的使用&#xff0c;單線程是馮?諾依曼計算機的操作抽象&#xff0c;如果理解了一個馮?諾依曼計算機是如何執行程序的&#xff0c;就能理解進程背后的知識&#xff0c;對操作系統的深入…

Solution 19: Fibonacci數列

問題描述 求Fibonacci數列的第n項。Fibonacci數列為1,1,2,3,5,... 解決思路 (1) 遞歸&#xff0c;指數級時間復雜度&#xff1b; (2) 循環&#xff0c;O(n)時間復雜度&#xff1b; (3) 矩陣乘法&#xff0c;O(logn)時間復雜度&#xff1b; (4) 公式法&#xff0c;O(1)時間復雜度…

boost::unordered_map 和 std::map 的效率 與 內存比較

例子鏈接&#xff1a;http://blog.csdn.net/gamecreating/article/details/7698719 結論: unordered_map 查找效率快五倍&#xff0c;插入更快&#xff0c;節省一定內存。如果沒有必要排序的話&#xff0c;盡量使用 hash_map(unordered_map 就是 boost 里面的 hash_map 實現)。…

軟件可靠性指標mtbf測試評估,軟件可靠性評估.pdf

軟件可靠性評估軟件可靠性工程基礎——軟件可靠性評估北京航空航天大學可靠性與系統工程學院目的? 理解什么是軟件可靠性評估&#xff0c;基本原理? 掌握和應用典型的軟件可靠性模型? 了解比較軟件可靠性模型的主要方法? 理解穩定使用階段的軟件可靠性評估? 理解增長測試中…

模型和控制器-起步階段

MVVM簡介 針對客戶端應用開發AngularJS吸收了傳統的MVC基本原則。MVC(Model-View-Controll)設計模式針對不同的人可能意味不同的東西 ,AngularJS并不執行傳統意義上的MVC&#xff0c;更接近于MVVM。 MVVM模式是Model-View-ViewMode模式的簡稱。由視圖(View)、視圖模型(ViewMode…

Apache開啟Gzip壓縮

1. 編輯Apache的httpd.conf文件 vim /etc/httpd/conf/httpd.conf 2. 開啟mod_deflate.so模塊 LoadModule deflate_module modules/mod_deflate.so 3. 對該模塊進行配置 # ShiftG到最下一行添加如下內容<IfModule mod_deflate.c> # 壓縮等級 9 DeflateCompressionLevel 9 …

計算機的網絡與結構,計算機結構與組成29-網絡.ppt

計算機結構與組成29-網絡CS61C L221 Performance ? UC Regents I/O Review I/O gives computers their 5 senses I/O speed range is 12.5-million to one Differences in processor and I/O speed ? synchronize with I/O devices before use Polling works, but expensive …

Canvas動畫 位圖緩存提高效率和對應的內存問題

對一個矢量圖動畫&#xff0c;開啟位圖緩存能大大提高運行效率。所謂開啟位圖緩存&#xff0c;其實要自己動手&#xff0c;先創建一個臨時canvas&#xff0c;然后把矢量圖繪制到這個canvas上&#xff0c;到了實際繪制時&#xff0c;直接把這個臨時canvas拷貝到真正canvas上。而…

ASP.NET MVC 學習第一天

今天開始第一天學習asp.net mvc&#xff0c;寫的不是很好&#xff0c;高手不要噴&#xff0c;希望大家能一起進步學習。 好了&#xff0c;開始學習 新建項目&#xff0c;選擇mvc 4應用程序 接下來選擇基本&#xff0c;視圖引擎當然要選擇Razor&#xff0c;如果在選擇aspx那我們…