错误代码改正后在leetcode里面还是会报错求分析原因
题目的要求是:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
示例:
给定 nums = , target = 9
因为 nums + nums = 2 + 7 = 9
所以返回
能说明一下它提示的错误是什么意思吗?应该怎么改?我写的代码也没40多行啊,他怎么提示40多行有问题?
把你的代码发上来,帮你改改{:10_266:}力扣答题要按照格式的 1、力扣答题需要固定格式,你的格式可能有问题,不是传参的形式
2、力扣要对代码进行优化,超过一定占用内存,就会报错 首先,Leetcode 的模板不能删除
每个题的题解都是写在 Solution 类下的 方法 内
如果你删掉了,Leetcode 就找不到北了{:10_256:}
如果想回复原始模板,
可以代码编辑区上面的按钮回复(注意你的代码会被覆盖) 你的代码应该改为:class Solution:
def twoSum(self, nums: List, target: int) -> List:
for i in range(len(nums)):
for j in range(len(nums)):
if nums + nums == target:
return 才能通过。
不要改变力扣题目的模板。 你两个for去暴力破题,真的好吗?{:10_319:}
def hash(numbers, target):
"""哈希表,不多赘述"""
dct = {}
for idx, val in enumerate(numbers):
if val in dct:
return + 1, idx + 1]
dct = idx
def double_pointer(numbers, target):
# TODO {
# 如果numbers + numbers > target,由于是已经排序好的。所以 right - 1。直到指针重叠
# 反之 numbers + numbers < target,left + 1 。
#}
left, right = 0, len(numbers) - 1
while numbers + numbers != target:
if numbers + numbers > target:
right -= 1
else:
left += 1
return
def two_points(numbers, target):
# TODO {
# 我们需要找两个数,numbers 以及在numbers右侧的 target - numbers
# 我们遍历数组需要O(n),二分查找一个值需要O(log_n), 最终耗时O(nlogn)
#}
length = len(numbers)
for index, value in enumerate(numbers):
_ = index
while _ < length:
mid = (_ + length) >> 1
number = numbers
if number > target - value:
length = mid
elif number < target - value:
_ = mid + 1
else:
return Stubborn 发表于 2020-7-29 19:18
你两个for去暴力破题,真的好吗?
两个for的话暴力解题是啥意思不懂?刚接触力扣的,是该用你的方法,你的方法更好吗?
页:
[1]