• leetcode15 3Sum


     1 """
     2 Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.
     3 Note:
     4 The solution set must not contain duplicate triplets.
     5 Example:
     6 Given array nums = [-1, 0, 1, 2, -1, -4],
     7 A solution set is:
     8 [
     9   [-1, 0, 1],
    10   [-1, -1, 2]
    11 ]
    12 """
    13 """
    14 two Sum用了hash。而Three Sum不需要用
    15 先对数组排序
    16 然后用三个指针 i, l, r 来进行遍历
    17 先确定一个i的值,将i指向第一个不重复的值,l 指向头,r指向尾
    18 第二层循环 while l<r
    19 如果和大于0, r左移
    20 如果和小于0, l右移
    21 如果和等于0,保存结果
    22 将l,r分别移到不重复这个值的位置
    23 l,r再同时左移和右移
    24 """
    25 class Solution:
    26     def threeSum(self, nums):
    27         res = []
    28         nums.sort()
    29         for i in range(len(nums) -2):
    30             if i > 0 and nums[i] == nums[i-1]:
    31                 continue
    32             l, r = i+1, len(nums)-1
    33             while l < r:
    34                 if nums[i] + nums[l] + nums[r] > 0:
    35                     r -= 1
    36                 elif nums[i] + nums[l] + nums[r] < 0:
    37                     l += 1
    38                 else:
    39                     res.append([nums[i], nums[l], nums[r]])
    40                     while l < r and nums[l] == nums[l+1]:
    41                         l += 1
    42                     while l < r and nums[r] == nums[r-1]:
    43                         r -= 1
    44                     l += 1
    45                     r -= 1
    46         return res
  • 相关阅读:
    新代(Syntec)机床的IP设置
    使用任务计划程序实现用户未登录情况下的程序开机自启动
    sql server 数据库访问端口配置
    Http请求
    EF
    SQL Server常用处理
    利用ZXing生成条码二维码例子
    SQL JOIN常见情况
    C#ORM框架收集
    sql server连接oracle并实现增删改查
  • 原文地址:https://www.cnblogs.com/yawenw/p/12334993.html
Copyright © 2020-2023  润新知