概述
六、加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。
你可以假设除了整数 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):
result.append(matrix[x][y])
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=0
flag = False
elif y<0:
y=0
flag =True
return result
结果:
32 / 32 个通过测试用例
状态:通过
执行用时:200 ms
嗯。。。就是奇偶的判断,然后进行坐标的变换 提取值塞进数组,最后返回
回见。
最后
以上就是糟糕乐曲为你收集整理的力扣刷题日记(5)的全部内容,希望文章能够帮你解决力扣刷题日记(5)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复