【发布时间】:2022-11-18 17:36:53
【问题描述】:
我正在尝试解决 Leetcode 的 Two Sum 问题 (https://leetcode.com/problems/two-sum/),我的代码在小列表上运行良好,
但是网站在尝试此列表和目标 (https://leetcode.com/submissions/detail/845707290/testcase/) (19999) 时输出我“超出时间限制”,尽管我的编码环境输出 [9998、9999](虽然过了一段时间)
x = 0
y = 1
while x < len(nums):
if x == y:
y += 1
if (nums[x] + nums[y]) == target:
L = [x, y]
print(L)
break
if y == len(nums) - 1:
x += 1
y = 0
if (nums[x] + nums[y]) == target:
L = [x, y]
print(L)
break
#if x == len(nums) - 1:
# y += 1
# x = 0
elif (nums[x] + nums[y]) == target:
L = [x, y]
print(L)
break
y += 1
(我在 Leetcode 中的代码包含返回而不是打印,因为它是函数的一部分) 谢谢。
这是 LeetCode 上的代码
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
x = 0
y = 1
while x < len(nums):
if x == y:
y += 1
if (nums[x] + nums[y]) == target:
L = [x, y]
return L
break
if y == len(nums) - 1:
x += 1
y = 0
if (nums[x] + nums[y]) == target:
L = [x, y]
return L
break
#if x == len(nums) - 1:
# y += 1
# x = 0
if (nums[x] + nums[y]) == target:
L = [x, y]
return L
break
y += 1
【问题讨论】:
-
你的问题到底是什么?你似乎已经知道问题出在哪里了。
-
在线 IDE 根本不会为您提供资源来完成更冗长的任务(因此超过了时间限制)
-
不能在你的函数中使用range直接定义list吗?
-
另外,我相信当你回来时没有必要休息。
-
当 Leetcode 告诉您您的代码运行时间太长时,这通常意味着尽管您的代码可能(最终)输出正确的结果,但您的算法存在缺陷
标签: python