力扣labuladong一刷day19天花式遍歷

力扣labuladong一刷day19天花式遍歷

文章目錄

      • 力扣labuladong一刷day19天花式遍歷
      • 一、48. 旋轉圖像
      • 二、54. 螺旋矩陣
      • 三、59. 螺旋矩陣 II

一、48. 旋轉圖像

題目鏈接:https://leetcode.cn/problems/rotate-image/
思路:把矩陣向右旋轉90度,要求原地操作,這里借鑒了把一個字符串里所有單詞順序給翻轉的思路,單詞順序翻轉其實是,先翻轉整個字符串,然后再翻轉每一個單詞即可完成,而不是按照空格把每一個單詞分隔開再拼回去。
把矩陣沿著左上角和右下角這條對對角線翻轉,然后再每一行橫向翻轉即可得到順時針旋轉90度。

class Solution {public void rotate(int[][] matrix) {int n = matrix.length;for (int i = 0; i < n; i++) {for (int j = i; j < n; j++) {int temp = matrix[i][j];matrix[i][j] = matrix[j][i];matrix[j][i] = temp;}}for (int[] nums : matrix) {int i = 0, j = nums.length-1;while (i < j) {int temp = nums[i];nums[i] = nums[j];nums[j] = temp;i++;j--;}}}
}

二、54. 螺旋矩陣

題目鏈接:https://leetcode.cn/problems/spiral-matrix/
思路:每次讀取一條邊,然后每遍歷一條邊就調整邊界。

class Solution {List<Integer> spiralOrder(int[][] matrix) {int m = matrix.length, n = matrix[0].length;int upper_bound = 0, lower_bound = m - 1;int left_bound = 0, right_bound = n - 1;List<Integer> res = new LinkedList<>();// res.size() == m * n 則遍歷完整個數組while (res.size() < m * n) {if (upper_bound <= lower_bound) {// 在頂部從左向右遍歷for (int j = left_bound; j <= right_bound; j++) {res.add(matrix[upper_bound][j]);}// 上邊界下移upper_bound++;}if (left_bound <= right_bound) {// 在右側從上向下遍歷for (int i = upper_bound; i <= lower_bound; i++) {res.add(matrix[i][right_bound]);}// 右邊界左移right_bound--;}if (upper_bound <= lower_bound) {// 在底部從右向左遍歷for (int j = right_bound; j >= left_bound; j--) {res.add(matrix[lower_bound][j]);}// 下邊界上移lower_bound--;}if (left_bound <= right_bound) {// 在左側從下向上遍歷for (int i = lower_bound; i >= upper_bound; i--) {res.add(matrix[i][left_bound]);}// 左邊界右移left_bound++;}}return res;}
}

三、59. 螺旋矩陣 II

題目鏈接:https://leetcode.cn/problems/spiral-matrix-ii/
思路:正方形的螺旋矩陣可以按照四條邊遍歷,每次只遍歷左閉右開,正好每次遍歷一個圈。

class Solution {public int[][] generateMatrix(int n) {int[][] matrix = new int[n][n];int k = 1;for (int i = 0; i < n / 2; i++) {for (int j = i; j < n-i-1; j++) {matrix[i][j] = k++;}for (int j = i; j < n-i-1; j++) {matrix[j][n-i-1] = k++;}for (int j = n-i-1; j > i; j--) {matrix[n-i-1][j] = k++;}for (int j = n-i-1; j > i; j--) {matrix[j][i] = k++;}}if (n % 2 == 0) return matrix;matrix[n/2][n/2] = k;return matrix;}
}

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

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

相關文章

完美解決AttributeError: ‘NoneType‘ object has no attribute ‘append‘

文章目錄 一、原始代碼二、修改后的代碼--最后一行代碼append進行了修改總結 一、原始代碼 logits_list [] # 創建一個空列表來存儲每個logitslabels_list []for i, batch in enumerate(test_tasks):with torch.no_grad():logits, labels, loss, acc self.fast_adapt(batc…

斯坦福大學引入FlashFFTConv來優化機器學習中長序列的FFT卷積

斯坦福大學的FlashFFTConv優化了擴展序列的快速傅里葉變換(FFT)卷積。該方法引入Monarch分解&#xff0c;在FLOP和I/O成本之間取得平衡&#xff0c;提高模型質量和效率。并且優于PyTorch和FlashAttention-v2。它可以處理更長的序列&#xff0c;并在人工智能應用程序中打開新的可…

【Python百寶箱】Python中的音視頻處理: 探索多樣化的庫和工具

Python中的音視頻處理: 探索多樣化的庫和工具 前言 在數字化時代&#xff0c;音視頻處理不僅僅是娛樂產業的需求&#xff0c;還滲透到了教育、醫療、安防等多個領域。Python作為一門強大而靈活的編程語言&#xff0c;為開發人員提供了豐富的資源來處理和分析音視頻數據。本文…

SQL Server Profiler基礎使用

文章目錄 SQL Server Profiler基礎使用簡介如何打開直接打開Microsoft SQL Server Management Studio工具欄打開 配置跟蹤新建跟蹤跟蹤屬性配置常規配置事件選擇 啟動跟蹤跟蹤時執行腳本跟蹤記錄 暫停跟蹤停止跟蹤 SQL Server Profiler基礎使用 簡介 一個圖形界面工具&#x…

逆矩陣相關性質與例題

1.方陣的行列式&#xff1a;就是將方陣中的每一個元素轉換至行列式中。 1.性質一&#xff1a;轉置方陣的行列式等于轉置前的行列式。&#xff08;對標性質&#xff1a;行列式與它的轉置行列式相等&#xff09; 2.性質二&#xff1a;|ka||a|*k的n次方&#xff0c;n為方陣階數。 …

芯片設計—低功耗isolation cell

&#xff08;一&#xff09;低功耗isolation cell的目的 低功耗架構設計需要前后端拉通規劃&#xff0c;前端設計有PMU功耗管理單元&#xff0c;比如A模塊電壓常開&#xff0c;B模塊電壓可關斷&#xff0c;那么請思考&#xff0c;當B模塊關斷電壓后&#xff0c;B模塊輸出到A模…

PDF控件Spire.PDF for .NET【轉換】演示:將在 C#/VB.NET 中將 PDF 轉換為 PCL

本文我們將演示如何通過調用 Spire.PDF 提供的方法 PdfDocument.SaveToStream() 將 PDF 頁面轉換為 HTML、Word、SVG、XPS、PDF 并將它們保存到流中。并且從Spire.PDF版本4.3開始&#xff0c;它新支持轉換定義范圍的PDF頁面并將其保存到流中。 Spire.Doc 是一款專門對 Word 文…

精益制造中的周轉箱和工具柜優勢

制造業&#xff08;Manufacturing industry&#xff09;是指機械工業時代利用某種資源&#xff08;物料、能源、設備、工具、資金、技術、信息和人力等&#xff09;&#xff0c;按照市場要求&#xff0c;通過制造過程&#xff0c;轉化為可供人們使用和利用的大型工具、工業品與…

大語言模型概述(二):基于亞馬遜云科技的研究分析與實踐

上期介紹了大語言模型的定義和發展歷史&#xff0c;本期將分析基于亞馬遜云科技的大語言模型相關研究方向&#xff0c;以及大語言模型的訓練和構建優化。 大語言模型研究方向分析 Amazon Titan 2023 年 4 月&#xff0c;亞馬遜云科技宣布推出 Amazon Titan 大語言模型。根據…

redis運維(十七)事務

一 redis事務 事務核心參考 ① 基礎概念 1、場景引入核心&#xff1a;通過現象思考原因? 2、事務的概念 3、事務四大特性說明&#xff1a; redis只具備部分特性 重點1&#xff1a; 原子性和一致性 重點2&#xff1a; 隔離性和持久性 ② redis的事務 1、基礎鋪墊備注&…

runapi的學習記錄

安裝地址 git clone https://github.com/star7th/showdoc.git 默認賬號與密碼 showdoc 123456 首頁 訪問地址&#xff1a;http://192.168.51.2:4042/web/#/ 進入ShowDoc首頁 登錄showdoc文檔系統 http://192.168.51.2:4042/web/#/user/login 默認賬號密碼showdoc/12345…

unity Terrain 性能問題

在實踐過程中unity發生進入場景GPU爆顯存的情況&#xff0c;經過調查發現是使用Terrain造成的問題&#xff0c;這個問題在使用一個Terrain的時候并不會發生&#xff0c;但是在使用多個時會發生。 似乎在使用過程中Terrain會直接把Terrain的整個地圖加載&#xff0c;造成移動設…

? 一文帶你了解多文件混淆加密

?&#x1f512; 一文帶你了解多文件混淆加密 目錄 &#x1f512; 一文帶你了解 JavaScript 多文件混淆加密 ipaguard加密前 ipaguard加密后 ? &#x1f512; 一文帶你了解 JavaScript 多文件混淆加密 JavaScript 代碼多文件混淆加密可以有效保護源代碼不被他人輕易盜取。…

關閉vscode打開的本地服務器端口

vscode開了本地的一個端口“8443”當本地服務器端口&#xff0c;然后隨手把VScode一關&#xff0c;后來繼續做發現8443端口已經被占用了。 ??原來&#xff0c;即便關閉了編譯器VScode&#xff0c;服務器依然是被node.exe運行著的。那這個端口怎么才能關掉呢&#xff1f; ??…

Kotlin基礎——Lambda和函數式編程

Lambda 使用 { } 定義Lamba&#xff0c;調用run運行 run { println(1) }更常用的為 { 參數 -> 操作 }&#xff0c;還可以存儲到變量中&#xff0c;把變量作為普通函數對待 val sum { x: Int, y: Int -> x y } println(sum(1, 2))maxBy()接收一個Lambda&#xff0c;傳…

EXIT外部中斷 HAL庫+cubeMX

一.cubeMX外部中斷配置 1.系統內核 2.中斷管理 3.選擇搶占優先級和響應優先級&#xff0c;共有5個等級&#xff0c;在這里就使用庫函數編寫代碼時最常用的2位搶占優先級2位響應優先級。 4.勾選使能選項&#xff0c;后面的兩個零&#xff0c;第一個代表搶占優先級的等級&#xf…

用于計算機屏幕安全攝像頭系統:Screen Anytime Crack

Screen Anytime 是一款軟件&#xff0c;旨在自動將整個用戶會話或 PC/服務器/VM/Kiosk 的 /RDP/Citrix/RemoteApp 會話的屏幕活動記錄到視頻日志文件中&#xff0c;以用于記錄、審核和監控目的。通過重播其高度壓縮的視頻&#xff0c;您可以輕松回顧單臺計算機或一組服務器/PC …

基于C#實現并查集

一、場景 有時候我們會遇到這樣的場景&#xff0c;比如:M{1,4,6,8},N{2,4,5,7}&#xff0c;我的需求就是判斷{1,2}是否屬于同一個集合&#xff0c;當然實現方法有很多&#xff0c;一般情況下&#xff0c;普通青年會做出 O(MN)的復雜度&#xff0c;那么有沒有更輕量級的復雜度呢…

Vatee萬騰科技的獨特力量:Vatee數字時代創新的新視野

在數字化時代的浪潮中&#xff0c;Vatee萬騰科技以其獨特而強大的創新力量&#xff0c;為整個行業描繪了一幅嶄新的視野。這不僅是一場科技創新的冒險&#xff0c;更是對未來數字時代發展方向的領先探索。 Vatee萬騰將創新視為數字時代發展的引擎&#xff0c;成為推動行業向前的…

ubuntu 安裝python3.13

列出 /usr/bin/ 目錄下所有以 python 開頭的文件和目錄 ls /usr/bin/python* 添加Python軟件源。您可以通過以下命令將Python的軟件源添加到您的系統中 sudo add-apt-repository ppa:deadsnakes/ppa 然后運行以下命令以更新軟件包列表&#xff1a; sudo apt-get update 安…