資料結構與演算法 螺旋矩陣 整數反轉

2021-10-10 19:39:15 字數 1696 閱讀 8045

54. 螺旋矩陣

給定乙個包含 m x n 個元素的矩陣(m 行, n 列),請按照順時針螺旋順序,返回矩陣中的所有元素。

示例 1:輸入:

[

[ 1, 2, 3 ],

[ 4, 5, 6 ],

[ 7, 8, 9 ]

]

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

示例 2:輸入:

[

[1, 2, 3, 4],

[5, 6, 7, 8],

[9,10,11,12]

]

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

需要定義四個變數:

top、bottom、left、right

需要注意的地方:行數為奇數或偶數

class

solution

top++;if

(left > right || top > bottom)

break

;for

(int i = top; i<=bottom; i++

) right--;if

(left > right || top > bottom)

break

;for

(int i = right; i>=left; i--

) bottom--;if

(left > right || top > bottom)

break

;for

(int i = bottom; i>=top; i--

) left++;if

(left > right || top > bottom)

break;}

return array;

}}

7. 整數反轉

給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

示例 1:

輸入: 123

輸出: 321

示例 2:

輸入: -123

輸出: -321

示例 3:

輸入: 120

輸出: 21

注意:

假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。

1234

1234 % 10 = 4得到個位數4

1234 / 10 = 123得到剩餘的數

123 % 10 = 3得到個位數

result = (((4 * 10) + 3) * 10 + 2) * 10 + 1

result = 4000 + 300 + 20 + 1 = 4321

關於溢位,可以使用long型別,然後返回的時候再強轉為int

class

solution

return

(int

)result;

}}

或者

class

solution

return result;

}}

資料結構與演算法 反轉鍊錶

定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null限制 0 節點個數 5000 本題最簡單的方法是用棧。但如果考慮到使空間複雜度最小,可以使用前後雙指標法 definition for singly l...

資料結構與演算法 二 陣列反轉 reverse

前面我們提到了陣列,現在我們就以陣列來實現反轉 如我們定義乙個陣列 int array 反轉無疑就是將陣列下標第0個元素與下標最後乙個元素互換,然後是第1個元素與倒數第2個元素的互換,依次類推 我們設想陣列長度為基數或偶數都沒有問題 我們需要乙個方法,在方法中就做一件事情,那就是交換元素,在交換元素...

資料結構與演算法 09 矩陣快速冪

為什麼要寫矩陣快速冪呢,因為快速冪我已經寫過了,只要過載一下運算子就好了 乙個字 懶 絕對不是我懶啊。struct matrix 此處傳reference matrix operator const matrix x,const matrix y return r 矩陣快速冪 給定 n times ...