代碼隨想錄:螺旋矩陣II相關題目推薦(54、LCR146)

59.螺旋矩陣II

題目

給你一個正整數?n?,生成一個包含?1?到?n2?所有元素,且元素按順時針順序螺旋排列的?n x n?正方形矩陣?matrix?。

示例 1:

輸入:n = 3
輸出:[[1,2,3],[8,9,4],[7,6,5]]

代碼(新解法)

class Solution {public int[][] generateMatrix(int n) {int left = 0;int right = n - 1;int up = 0;int down = n - 1;int count = 1;int[][] matrix = new int[n][n];while(count <= n*n){for(int i=left;i <= right;i++){matrix[up][i] = count++;}up++;for(int i=up;i <= down;i++){matrix[i][right] = count++;}right--;for(int i=right;i >= left;i--){matrix[down][i] = count++;}down--;for(int i=down;i >= up;i--){matrix[i][left] = count++;}left++;}return matrix;}
}

54.螺旋矩陣

題目

給你一個?m?行?n?列的矩陣?matrix?,請按照?順時針螺旋順序?,返回矩陣中的所有元素。

示例 1:

輸入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
輸出:[1,2,3,6,9,8,7,4,5]

代碼(解法同上面的59)

class Solution {public List<Integer> spiralOrder(int[][] matrix) {int left = 0;int right = matrix[0].length - 1;int top = 0;int bottom = matrix.length - 1;List<Integer> list = new ArrayList<>();int count = 1;int all = matrix[0].length * matrix.length;//count <= all要加上,因為4個for循環是一起執行完才判斷while條件的//如果不加這個判斷,不然最后可能會多幾個數(多執行了for)while(count <= all){for(int i=left; i <= right && count <= all; i++){list.add(matrix[top][i]);count++;}top++;for(int i=top; i <= bottom && count <= all; i++){list.add(matrix[i][right]);count++;}right--;for(int i=right; i >= left && count <= all; i--){list.add(matrix[bottom][i]);count++;}bottom--;for(int i=bottom; i >= top && count <= all; i--){list.add(matrix[i][left]);count++;}left++;}return list;}
}

LCR146.螺旋遍歷二維數組

題目

給定一個二維數組?array,請返回「螺旋遍歷」該數組的結果。

螺旋遍歷:從左上角開始,按照?向右向下向左向上?的順序?依次?提取元素,然后再進入內部一層重復相同的步驟,直到提取完所有元素。

示例 1:

輸入:array = [[1,2,3],[8,9,4],[7,6,5]]
輸出:[1,2,3,4,5,6,7,8,9]

代碼(原理同54,修改了一點點)

class Solution {public int[] spiralArray(int[][] array) {//這個必須要寫,不然array為空時,array[0]會報錯if(array.length == 0) {return new int[0];}int left = 0;int right = array[0].length - 1;int top = 0;int bottom = array.length - 1;int[] res = new int[array[0].length * array.length];int count = 0;int all = array[0].length * array.length;//count < all要加上,因為4個for循環是一起執行完才判斷while條件的//如果不加這個判斷,不然最后可能會多幾個數(多執行了for)while(count < all){for(int i=left; i <= right && count < all; i++){res[count++] = array[top][i];}top++;for(int i=top; i <= bottom && count < all; i++){res[count++] = array[i][right];}right--;for(int i=right; i >= left && count < all; i--){res[count++] = array[bottom][i];}bottom--;for(int i=bottom; i >= top && count < all; i--){res[count++] = array[i][left];}left++;}return res;}
}

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

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

相關文章

MyBatis——MyBatis 參數處理

一、單個簡單類型參數 簡單類型包括&#xff1a; byte short int long float double char Byte Short Integer Long Float Double Character String java.util.Date java.sql.Date parameterType 屬性&#xff1a;告訴 MyBatis 參數的類型 MyBatis 自帶類型自動推斷機制…

LLM應用-prompt提示:生成搜索相關問題、生成回答格式包含參考資料

參考: https://isou.chat/ (AI回答與相關問題都是根據問題的搜索引擎結果結合大模型生成的) prompt參考: https://github.com/yokingma/search_with_ai/blob/6d32aa8f05f5f6ee12b5204787035b3f7797c22a/src/prompt.ts#L8 ##rag 根據搜索結果知識回答RagQueryPrompt = ` …

在Go語言中,可以這樣使用Json

在Go語言中&#xff0c;處理JSON數據通常涉及編碼&#xff08;將Go結構體轉換為JSON字符串&#xff09;和解碼&#xff08;將JSON字符串轉換為Go結構體&#xff09;。Go標準庫中的encoding/json包提供了這些功能。第三方插件可以使用"github.com/goccy/go-json"也有同…

Git | git log 和 git status 的區別

如是我聞&#xff1a; git log和git status是Git中的兩個非常有用的命令&#xff0c;它們用于不同的目的&#xff0c;并提供不同類型的信息。 git log git log命令用于顯示一個或多個分支的提交歷史記錄。這個命令會列出提交歷史&#xff0c;包括每次提交的SHA-1哈希值、提交…

程控水冷阻性負載主要工作方式

程控水冷阻性負載是一種先進的電力設備&#xff0c;主要用于電力系統的測試和研究。它的主要工作方式是通過控制水冷系統的溫度&#xff0c;來模擬不同的阻性負載條件&#xff0c;從而對電力設備進行各種性能測試。 首先&#xff0c;我們需要了解什么是阻性負載。阻性負載是指那…

博弈智能的特點

博弈智能是指通過算法和模型對博弈過程進行分析和決策的智能系統。在博弈中&#xff0c;各方參與者追求自身利益和目標&#xff0c;會采取各種策略來達到自己的目標。其中&#xff0c;包括了一些不正當手段&#xff0c;如詭計和欺騙&#xff08;詭&#xff09;&#xff08;詐&a…

代碼隨想錄算法訓練營Day 42| 動態規劃part04 | 01背包問題理論基礎I、01背包問題理論基礎II、416. 分割等和子集

代碼隨想錄算法訓練營Day 42| 動態規劃part04 | 01背包問題理論基礎I、01背包問題理論基礎II、416. 分割等和子集 文章目錄 代碼隨想錄算法訓練營Day 42| 動態規劃part04 | 01背包問題理論基礎I、01背包問題理論基礎II、416. 分割等和子集01背包問題理論基礎一、01背包問題二、…

WSL設置啟動時自動啟動docker服務或其他服務

方式一: Windows系統的WSL,當windows關機再開機后,WSL等于是重新開機的,默認情況下,不會啟動Docker服務。例如在Ubuntu 22.04中,需要使用命令 service docker start來啟動。由于我習慣關機斷電,因此每天開機打開WSL后都要手動輸入這個命令,非常麻煩。所以找了一個方法…

Redis教程——哨兵

在上篇文章我們學習了Redis教程——主從復制&#xff0c;這篇文章我們學習Redis教程——哨兵監控。 在主從復制中如果主機發生宕機&#xff0c;從機Redis會一直等到主機的恢復&#xff0c;這樣會導致只能進行讀操作&#xff0c;不能進行寫操作&#xff0c;這大大降低了系統的高…

資料同化 | 搭建docker環境-1

Community Gridpoint Statistical Interpolation (GSI) system DTC 是一個分布式設施&#xff0c;NWP 社區可以在這里測試和評估用于研究和操作的新模型和技術。 DTC的目標包括&#xff1a; 鏈接研究和操作社區 研究成果轉化為實際操作的速度 加快改善天氣預報 開發和測試有…

Cocos Creator 3.8.x 透明帶滾動功能的容器

ScrollView 是一種帶滾動功能的容器 1、刪除ScrollView下Sprite組件的SpriteFrame 2、ScrollView下scrollBar的Sprite組件的Color設為&#xff1a;FFFFFF00 3、ScrollView下view的Graphics組件的FillColor設為&#xff1a;FFFFFF00

IP代理如何幫助SEO進行優化?

IP代理在SEO優化中扮演著重要的角色&#xff0c;它通過多種方式幫助提升網站的搜索排名和可見性。以下是IP代理如何幫助SEO進行優化的詳細闡述&#xff1a; 第一點&#xff0c;數據采集與分析&#xff1a;在SEO過程中&#xff0c;大量的數據是必不可少的。通過使用IP代理&…

如何區分os.walk()與os.scandir()

os.walk() import os for dirpath, dirname, files in os.walk(./):# dirpath 當前——路徑# dirname 當前——路徑——下——文件夾名——列表# files 當前——路徑——下——文件——列表dirpath 當前路徑 ./ dirname 當前路徑下面文件夾名稱組成的列表&#xff0c;共3個文…

c++ std::shared_ptr學習

背景 c中智能指針shared_ptr用于自動管理資源&#xff0c;通過引用計數來記錄資源被多少出地方使用。在不使用資源時&#xff0c;減少引用計數&#xff0c;如果引用計數為0&#xff0c;表示資源不會再被使用&#xff0c;此時會釋放資源。本文記錄對c中std::shared_ptr的源碼學習…

攻防世界PHP2

1、打開靶機鏈接http://61.147.171.105:49513/&#xff0c;沒有發現任何線索 2、嘗試訪問http://61.147.171.105:49513/index.php&#xff0c;頁面沒有發生跳轉 3、嘗試將訪問 嘗試訪問http://61.147.171.105:49513/index.phps index.php 和 index.phps 文件之間的主要區別在于…

GNU Radio創建時間戳 C++ OOT塊

文章目錄 前言一、創建自定義的 C OOT 塊1、創建 timestamp_sender C OOT 模塊①、創建 timestamp_sender OOT 塊②、修改 C 代碼 2、創建 timestamp_receiver C OOT 模塊①、創建 timestamp_receiver OOT 塊②、修改 C 代碼 3、創建 delayMicroSec C OOT 模塊①、創建 delayMi…

Vue3實戰筆記(20)—封裝頭部導航組件

文章目錄 前言一、封裝頭部導航欄二、使用步驟總結 前言 Vue 3 封裝頭部導航欄有助于提高代碼復用性、統一風格、降低維護成本、提高可配置性和模塊化程度&#xff0c;同時還可以實現動態渲染等功能&#xff0c;有利于項目開發和維護。 一、封裝頭部導航欄 封裝頭部導航欄&am…

HFSS學習-day4-建模操作

通過昨天的學習&#xff0c;我們已經熟悉了HFSS的工作環境&#xff1b;今天我們來講解HFSS中創建物體模型的縣體步驟和相關操作。物體建模是HFSS仿真設計工作的第一步&#xff0c;HFSS中提供了諸如矩形、圓面、長方體圓柱體和球體等多種基本模型(Primitive)&#xff0c;這些基本…

新書速覽|MATLAB科技繪圖與數據分析

提升你的數據洞察力&#xff0c;用于精確繪圖和分析的高級MATLAB技術。 本書內容 《MATLAB科技繪圖與數據分析》結合作者多年的數據分析與科研繪圖經驗&#xff0c;詳細講解MATLAB在科技圖表制作與數據分析中的使用方法與技巧。全書分為3部分&#xff0c;共12章&#xff0c;第1…

tp8 設置空控制器和空方法

1、空控制器 單應用模式下&#xff0c;我們可以給項目定義一個Error控制器類 <?phpnamespace app\controller;class Error {/*** 空控制器中重寫魔術方法__call可以實現自定義錯誤提示&#xff0c;在這里可以提示找不到控制器* 注意&#xff1a;在基礎控制器BaseControll…