每日題解 LeetCode 45 螺旋矩陣

2021-10-22 07:55:39 字數 2268 閱讀 6005

題目位址

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

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-hpdkehr9-1615821187527)(

示例 1:

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

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

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-xzmj4bub-1615821187529)(

示例 2:

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

輸出:[1,2,3,4,8,12,11,10,9,5,6,7]

class

solution

//輸出右邊

for(

int i = top +

1; i <= under; i++

)//判斷是否到了底部

if(left < right&& top < under)

//輸出左

for(

int i = under; i > top; i--)}

//縮圈

left++

; right--

; top++

; under--;}

return ans;}}

;

//按照層次模擬

class

solution

//首先找到四個角落

int row = matrix[0]

.length;

int column = matrix.length;

int left =0;

int top =0;

int right = row -1;

int under = column -1;

//迴圈

list

res =

newarraylist

(row * column)

;while

(left <= right && top <= under)

//輸出右

for(

int i = top +

1; i <= under; i++

)//判斷是否到了底部

if(left < right && top < under)

//輸出左

for(

int i = under; i > top; i--)}

left++

; right--

; top++

; under--;}

return res;}}

}

很久沒寫關於leetcode的題解了,這題屬於leetcode雖然屬於中等難度的題目,解法還是比較簡單的、

1.首先設定上下左右邊界

2.其次向右移動到最右,最右邊移動到右下角,右下角到左下角,再左下角繼續向上輸出,就是首先輸出最外層的元素,再縮小一圈輸出次外層的元素,直到輸出最內層的元素

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-xr406axx-1615821187532)(

這題最重要的地方是四個角的條件判斷

1.從最左邊到右邊的判斷條件

int i = left; i <= right; i++
2.最右邊移動到右下角

int i = top + 1; i <= under; i++
當到了右下角時,這裡需要注意一點,其中1,12已經輸出過了,需要判斷不能再次輸入(push)

//避免重複的輸入

left < right&& top < under

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-xh35trvf-1615821187535)(

3.右下角到左下角

int i = right - 1; i > left; i--
4.右下角到左下角

int i = under; i > top; i--

Leetcode 45 跳躍遊戲

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。示例 輸入 2,3,1,1,4 輸出 2 解釋 跳到最後乙個位置的最小跳躍數是 2。從下標為 0 跳到下標為 1 的位置,跳 1 步,然後跳 3 步...

Leetcode 45 跳躍遊戲

貪心 由區域性最優匯出全域性最優。對於該點能跳到的所有點loc 1 nums loc 考慮跳到之後還能跳多遠k nums loc k 哪個點最遠就跳到哪。學習題解的寫法 貪心的思想不變 還是找目前最有利的選擇來構成全域性最佳!在每一跳內找下一次的最遠距離!maxpos為在考慮範圍內能找到的跳到的最遠...

leetcode 45 跳躍遊戲

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。示例 輸入 2,3,1,1,4 輸出 2 解釋 跳到最後乙個位置的最小跳躍數是 2。從下標為 0 跳到下標為 1 的位置,跳 1 步,然後跳 3 步...