zoukankan      html  css  js  c++  java
  • 面试题-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)
    
  • 相关阅读:
    函数响应式编程
    RxSwift
    Swift 5.1 新语法
    MVVM
    SwiftUI 九
    SwiftUI 八
    SwiftUI制作View可嵌套组件
    Swift 5.1 新语法
    MVVM
    Linux系统修改hostname,不用重启
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/14768798.html
Copyright © 2011-2022 走看看