博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode------3Sum
阅读量:6421 次
发布时间:2019-06-23

本文共 1328 字,大约阅读时间需要 4 分钟。

标题:
通过率:  16.9%
难度: 中等

Given an array S of n integers, are there elements abc in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.

Note:

  • Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c)
  • The solution set must not contain duplicate triplets.

 

For example, given array S = {-1 0 1 2 -1 -4},    A solution set is:    (-1, 0, 1)    (-1, -1, 2)

从本题开始用python做题;

前面做过一个2sum用的是map方法,这次用的是一个适合与Ksum的方面。基础依然是2sum

2sum用两个指针进行做,start指针指向开头,end指针指向结尾开始匹配,

对于3sum就是加一层循环,从第零个位置开始,进入到2sum时是从第一个开始

对于4sum就是在2sum外面加两层

一次类推

代码如下:

1 class Solution: 2     # @return a list of lists of length 3, [[val1,val2,val3]] 3     def threeSum(self, num): 4         num.sort() 5         ans = [] 6         target=0 7         for i in range(0, len(num)): 8             l, r = i + 1, len(num) - 1 9             while l < r:10                 sum = num[i] + num[l] + num[r] 11                 if sum == target:12                     tmp=[num[i], num[l], num[r]]13                     if tmp not in ans:14                         ans.append(tmp)15                     l, r = l + 1, r - 116                 elif sum < target:17                     l = l + 118                 else:19                     r = r - 1   20         return ans

 

转载于:https://www.cnblogs.com/pkuYang/p/4403413.html

你可能感兴趣的文章
excel 大文件解析原理实现
查看>>
java学习--Mybatis使用方法
查看>>
error C1083: Cannot open include file: 'ntddk.h': No such file or directory
查看>>
Windows内存管理(1)--分配内核内存 和 使用链表
查看>>
paramiko 登录linux主机后执行tail后返回数据不完整解决方法。
查看>>
PHP根据URL提取根域名
查看>>
Eclipse添加DTD文件实现xml的自动提示功能
查看>>
Java Reflection (JAVA反射)详解
查看>>
JSP中页面刷新后保留文本输入框的值
查看>>
数据结构的学习
查看>>
Centos和Redhat的区别和联系
查看>>
JUC——线程同步锁(Condition精准控制)
查看>>
CKEDITOR的配置
查看>>
比原空投问答题库题解(二)
查看>>
闪烁的LED灯
查看>>
MySQL Proxy 实现MySQLDB 读写分离
查看>>
ef core 数据迁移命令
查看>>
dedecms--二次开发之会员帐号过期无法登录
查看>>
四则运算
查看>>
uva 10269(floyd+Dijkstra)
查看>>