算法(4)-leetcode-explore-learn-数据结构-数组2
生活随笔
收集整理的這篇文章主要介紹了
算法(4)-leetcode-explore-learn-数据结构-数组2
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
leetcode-explore-learn-數據結構-數組2
- 1.簡述
- 2.例題
- 2.1 二維數組的對角線遍歷
- 2.2 螺旋遍歷
- 2.3 楊輝三角
本系列博文為leetcode-explore-learn子欄目學習筆記,如有不詳之處,請參考leetcode官網:https://leetcode-cn.com/explore/learn/card/array-and-string/198/introduction-to-array/768/
1.簡述
本文主要記錄二維數據及相關的例題
二維數組的元素排列在矩形網格中,而不是直線上
在一些語言中,二維數組內部實際是使用一維數組實現的–c++中a[i] [j]內部索引時,實際為a[i*n+j] (n為每一行元素的個數)
與一維動態數組類似,一樣可以定義二維動態數組,實際上,他可以只是一個嵌套的動態數組。
2.例題
2.1 二維數組的對角線遍歷
同一條對角線上元素下標索引和一致。
n*m的矩陣一共有n+m-1條對角線
索引和為偶數時,向上遍歷,遍歷順序是(x,0)(x-1,1),(x-2,2),…,(0,x)
索引和為奇數時,向下遍歷,遍歷順序為(0,y),(1,y-1),…,(y,0)
28/32
參考博文:https://blog.csdn.net/qq_36022260/article/details/103651894
2.2 螺旋遍歷
leetcode 54
class Solution(object):def spiralOrder(self, matrix):""":type matrix: List[List[int]]:rtype: List[int]"""if not matrix:return []R,C=len(matrix),len(matrix[0])flag=[[False]*C for _ in matrix]res=[]dr=[0,1,0,-1] # [r+0,c+1] 表征順時針的四個方向dc=[1,0,-1,0]r,c=0,0di=0for _ in range(R*C):res.append(matrix[r][c])flag[r][c]=Truen_r,n_c=r+dr[di],c+dc[di]if 0<=n_r<R and 0<=n_c<C and not flag[n_r][n_c]:r,c=n_r,n_celse:di=(di+1)%4r,c=r+dr[di],c+dc[di]return res2.3 楊輝三角
第i行的元素個數為i+1個,i的取值范圍為0,1,…,numRows-1
第i行元素的第一個元素(索引為0)和最后一個元素(索引為i),該行中其它元素的索引j取值范圍為0,1,…,i-1.
總結
以上是生活随笔為你收集整理的算法(4)-leetcode-explore-learn-数据结构-数组2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL关键字EXPLAIN的用法及其
- 下一篇: Pytorch(7)-自己设计神经网络会