簡體   English   中英

我怎樣才能使這個 3sum 解決方案更省時?

[英]How can I make this 3sum solution more time efficient?

我想出了一個解決 leetcode 上的 3sum 問題的方法,但即使它通過了所有測試代碼,它也會因為“超出時間限制”而失敗。

class Solution(object):
def threeSum(self, nums):
    triplet_array = []
    
    x = []
    for i in range(len(nums)):
        for j in range(i+1, len(nums)):
            for k in range(j+1, len(nums)):
                if nums[i] + nums[j] + nums[k] == 0:
                    if i !=j and i !=k and j != k:
                                if [nums[i], nums[j], nums[k]] != x:
                                    x = [nums[i], nums[j], nums[k]]
                                    x.sort()
                                    if x not in triplet_array:
                                        triplet_array.append(x)
    return triplet_array

我不知道如何執行它一直引用的“空間/時間”分析,所以我想知道我如何讓這個解決方案更高效,以便在分配的時間內通過所有測試用例。

作為參考,可以在此處找到 3sum 問題的詳細信息: https://leetcode.com/problems/3sum/

一個提示是首先對傳入的數組進行排序。 如果您知道索引 i、j 和 k 處的三個元素加起來大於 0,那么增加 i、j 或 k(只要列表已排序)也將大於 0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM