作者Kuba4ma ()
看板Python
標題[問題] leecode167 Time Limit Exceeded
時間Wed Mar 18 17:43:14 2020
題目
Given an array of integers that is already sorted in ascending order, find
two numbers such that they add up to a specific target number.
The function twoSum should return indices of the two numbers such that they
add up to the target, where index1 must be less than index2.
Note:
Your returned answers (both index1 and index2) are not zero-based.
You may assume that each input would have exactly one solution and you may
not use the same element twice.
Example:
Input: numbers = [2,7,11,15], target = 9
Output: [1,2]
Explanation: The sum of 2 and 7 is 9. Therefore index1 = 1, index2 = 2.
code:
class Solution(object):
def twoSum(self, numbers, target):
"""
:type numbers: List[int]
:type target: int
:rtype: List[int]
"""
answer=list()
length=len(numbers)
for i in range(length):
for j in range(i+1,length):
if numbers[i]+numbers[j]==target:
answer.append(i+1)
answer.append(j+1)
return answer
問題:
runcode沒問題,但submit會Time Limit Exceeded,是leecode沒辦法接受時間複雜度太高
的答案嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 117.19.168.127 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1584524596.A.25A.html
推 yushes920179: 純回答你問題 是 03/18 18:32
推 cuteSquirrel: 對,Time Complexity太高。 03/18 19:12
推 cuteSquirrel: 提示:O(n)演算法、利用以排序的性質、double index 03/18 19:15
→ cuteSquirrel: 已排序 03/18 19:15
推 jn8029: 討論區有O(n)的解法啊 03/19 09:57
推 cuteSquirrel: 對,討論區upvote按讚數高的解法,很值得一讀。 03/19 13:35