[详情入内]提交结果不理想,有更好的写法吗
'''题目:
示例1:
输入:digits =
输出:
解释:输入数组表示数字 123。
示例2:
输入:digits =
输出:
解释:输入数组表示数字 4321。
示例 3:
输入:digits =
输出:
提示:
1 <= digits.length <= 100
0 <= digits <= 9
'''
#我的答案
def plusOne(self, digits: list) -> list:
k=0
b=0
for x in digits[::-1]:
k+=x*10**b
b+=1
return list(map(int,list(str(k+1))))
#我的提交结果
'''
执行结果:通过
执行用时:32 ms, 在所有 Python3 提交中击败了89.59%的用户
内存消耗:14.9 MB, 在所有 Python3 提交中击败了36.59%的用户
通过测试用例:
111 / 111
'''
题目是什么,原谅我没看懂示例
Twilight6 发表于 2022-5-17 14:06
题目是什么,原谅我没看懂示例
把列表组成一个数字,然后加1然后再拆分一个列表 89.59% 已经非常高了啊~ 傻眼貓咪 发表于 2022-5-17 14:24
89.59% 已经非常高了啊~
内存那个低啊 {:5_90:} 试试这个,空间复杂度:O(n)def plusOne(digits):
res = []
digits[-1] += 1
a = b = 0
for n in digits[::-1]:
a, b = divmod(n + a, 10)
res.append(b)
return res[::-1]
print(*plusOne()) 傻眼貓咪 发表于 2022-5-17 14:37
试试这个,空间复杂度:O(n)
执行结果:
解答错误
通过测试用例:
107 / 111
输入:
输出:
预期结果:
wp231957 发表于 2022-5-17 14:52
执行结果:
解答错误
试试直接 eval 哈哈:
def plusOne(self, digits: List) -> List:
num = eval("".join(list(map(str, digits))) + "+1")
return list(map(int, str(num)))
Twilight6 发表于 2022-5-17 15:03
试试直接 eval 哈哈:
执行用时:
40 ms, 在所有 Python3 提交中击败了42.25%的用户
内存消耗:
14.8 MB, 在所有 Python3 提交中击败了92.88%的用户 wp231957 发表于 2022-5-17 15:06
执行用时:
40 ms, 在所有 Python3 提交中击败了42.25%的用户
内存消耗:
哈哈 不用追求完美啦,这些每次运行结果都有误差的,你能做出来就很棒啦
本帖最后由 傻眼貓咪 于 2022-5-17 15:31 编辑
wp231957 发表于 2022-5-17 14:52
执行结果:
解答错误
哈哈,少一行,已修改:def plusOne(digits):
res = []
digits[-1] += 1
a = b = 0
for n in digits[::-1]:
a, b = divmod(n + a, 10)
res.append(b)
if(a): res.append(a)
return res[::-1]
print(*plusOne())
页:
[1]