給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。
最高位數字存放在陣列的首位, 陣列中每個元素只儲存乙個數字。
你可以假設除了整數 0 之外,這個整數不會以零開頭。
示例 1:
輸入: [1,2,3]
輸出: [1,2,4]
解釋: 輸入陣列表示數字 123。
示例 2:
輸入: [4,3,2,1]
輸出: [4,3,2,2]
解釋: 輸入陣列表示數字 4321。
原題: 傳送門
今天也拿python 練練手~
題解:
class solution(object):
def plusone(self, digits):
index = len(digits) -1
plusin = 0
while true:
digits[index] += 1
plusin = digits[index] // 10
digits[index] %= 10
index -= 1
if((not plusin)or(index<0)):
break
if(plusin):
digits.insert(0,1)
return digits
簡單來說,就是進製,嗯哼
109 / 109 個通過測試用例
狀態:通過
執行用時:24 ms
嗯。。。速度比之前稍微有點進步,繼續努力。
給定乙個含有 m x n 個元素的矩陣(m 行,n 列),請以對角線遍歷的順序返回這個矩陣中的所有元素,對角線遍歷如下圖所示。
示例:輸入:
[[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]輸出: [1,2,4,7,5,3,6,8,9]
解釋:
說明:給定矩陣中的元素總數不會超過 100000 。
原題: 傳送門
題解:
class solution(object):
def finddiagonalorder(self, matrix):
""":type matrix: list[list[int]]
:rtype: list[int]
"""if(len(matrix)==0 or len(matrix[0])==0):
return
result =
m = len( matrix)
n = len(matrix[0])
count = m*n
x = y = 0
flag = true
for i in range(count):
if flag :
x-=1
y+=1
else:
x+=1
y-=1
if x>=m:
x-=1
y+=2
flag = true
elif y>=n:
x+=2
y-=1
flag = false
if x<0:
x=0flag = false
elif y<0:
y=0flag =true
return result
結果:
32 / 32 個通過測試用例
狀態:通過
執行用時:200 ms
嗯。。。就是奇偶的判斷,然後進行座標的變換 提取值塞進陣列,最後返回
回見。 力扣刷題日記(3)
最近有點懶,哈哈,刷題挺慢的,今天用python3 練練手了,題目如下 設計你的迴圈佇列實現。迴圈佇列是一種線性資料結構,其操作表現基於 fifo 先進先出 原則並且隊尾被連線在隊首之後以形成乙個迴圈。它也被稱為 環形緩衝器 迴圈佇列的乙個好處是我們可以利用這個佇列之前用過的空間。在乙個普通佇列裡,...
力扣刷題日記10 29
我變禿了 也變強了 1.刪除排序陣列中的重複項 給定乙個排序陣列,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 o 1 額外空間的條件下完成。示例 1 給定陣列 nums 1,1,2 函式應該返回新...
力扣LeetCode刷題日記(一)
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...