日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

算法(4)-leetcode-explore-learn-数据结构-数组2

發(fā)布時間:2023/12/13 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法(4)-leetcode-explore-learn-数据结构-数组2 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

leetcode-explore-learn-數(shù)據(jù)結(jié)構(gòu)-數(shù)組2

  • 1.簡述
  • 2.例題
    • 2.1 二維數(shù)組的對角線遍歷
    • 2.2 螺旋遍歷
    • 2.3 楊輝三角

本系列博文為leetcode-explore-learn子欄目學(xué)習(xí)筆記,如有不詳之處,請參考leetcode官網(wǎng):https://leetcode-cn.com/explore/learn/card/array-and-string/198/introduction-to-array/768/

1.簡述

本文主要記錄二維數(shù)據(jù)及相關(guān)的例題

二維數(shù)組的元素排列在矩形網(wǎng)格中,而不是直線上

在一些語言中,二維數(shù)組內(nèi)部實際是使用一維數(shù)組實現(xiàn)的–c++中a[i] [j]內(nèi)部索引時,實際為a[i*n+j] (n為每一行元素的個數(shù))

與一維動態(tài)數(shù)組類似,一樣可以定義二維動態(tài)數(shù)組,實際上,他可以只是一個嵌套的動態(tài)數(shù)組。

2.例題

2.1 二維數(shù)組的對角線遍歷

同一條對角線上元素下標索引和一致。
n*m的矩陣一共有n+m-1條對角線
索引和為偶數(shù)時,向上遍歷,遍歷順序是(x,0)(x-1,1),(x-2,2),…,(0,x)
索引和為奇數(shù)時,向下遍歷,遍歷順序為(0,y),(1,y-1),…,(y,0)
28/32

class Solution(object):def findDiagonalOrder(self, matrix):""":type matrix: List[List[int]]:rtype: List[int]"""if not matrix:return []hor = len(matrix)ver = len(matrix[0])leng = hor+ver-1listmatrix = []for x in range(leng+1):if x%2 ==0:for i in range(x,-1,-1):j = x-iif i<hor and j<ver:listmatrix.append(matrix[i][j])elif j>ver:continueelse:for j in range(x,-1,-1):i = x-jif i<hor and j<ver:listmatrix.append(matrix[i][j])elif j>hor:continuereturn listmatrix

參考博文: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 res

2.3 楊輝三角

第i行的元素個數(shù)為i+1個,i的取值范圍為0,1,…,numRows-1
第i行元素的第一個元素(索引為0)和最后一個元素(索引為i),該行中其它元素的索引j取值范圍為0,1,…,i-1.

class Solution(object):def generate(self, c):""":type numRows: int:rtype: List[List[int]]"""res=[]for i in range(numRows):if i==0:res.append([1])elif i==1:res.append([1,1])else:res.append([1]*(i+1)) for j in range(1,i):res[i][j]=res[i-1][j-1]+res[i-1][j]return res

總結(jié)

以上是生活随笔為你收集整理的算法(4)-leetcode-explore-learn-数据结构-数组2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。