面試題-python3 個包含n個整數的數組nums,判斷nums中是否存在三個元素,a,b,c,使得a+b+c=0


面試題

python面試題:
一個包含n個整數的數組nums,判斷nums中是否存在三個元素,a,b,c,使得a+b+c=0?
找出所有和為0並且不重復的三元組。不可以包含重復的三元組。
如:nums=[-1,0,1,2,-1,-4]
輸出[[-1,-1,2],[-1,0,1]];
如:nums=[],
輸出[];
如:nums=[0]
輸出[]

代碼解決

遍歷讀取列表值,判斷3個相加等於0

# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/

def get_targe(nums, targe=0):
    if len(nums) < 3:
        return []
    targe = 0
    result = []
    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] == targe:
                    temp = [nums[i], nums[j], nums[k]]
                    # 去除重復
                    if sorted(temp) not in result:
                        result.append(sorted(temp))
    return result

if __name__ == '__main__':
    nums = [-1, 0, 1, 2, -1, -4]
    result = get_targe(nums, targe=0)
    print(result)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM