[問題] leecode167 Time Limit Exceeded

看板Python作者時間4年前 (2020/03/18 17:43), 編輯推噓5(501)
留言6則, 3人參與, 4年前最新討論串1/1
題目 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

03/18 18:32, 4年前 , 1F
純回答你問題 是
03/18 18:32, 1F

03/18 19:12, 4年前 , 2F
對,Time Complexity太高。
03/18 19:12, 2F

03/18 19:15, 4年前 , 3F
提示:O(n)演算法、利用以排序的性質、double index
03/18 19:15, 3F

03/18 19:15, 4年前 , 4F
已排序
03/18 19:15, 4F

03/19 09:57, 4年前 , 5F
討論區有O(n)的解法啊
03/19 09:57, 5F

03/19 13:35, 4年前 , 6F
對,討論區upvote按讚數高的解法,很值得一讀。
03/19 13:35, 6F
文章代碼(AID): #1USUqq9Q (Python)