LeetCode: 18. 4Sum

引言

题目链接:https://leetcode.com/problems/4sum/description/

题目大意

给出一个包含n个整数的数组nums以及一个目标值target,这个数组是否存在有元素a,b,c,d使得 a + b + c + d = target,找出所有满足条件的a,b,c,d的组合

  • Example

题解

这题其实是第15题的变种,相信看了这篇题解举一反三很容易能拿下这题,LeetCode:15.3Sum题解,Click Here!

这道题由于是求4个数的目标值,所以需要滚动查询的数字由15题的两个变成了3个,很暴力的一个方法,在原来的循环上再加一层循环,内部继续再剩余数组上枚举两个数求和即可

Hint:

如何优雅的避免重复也是一个坑,外层两个循环都需要判断下当前选取的数字和上一次是不是相同的,相同的直接跳过,内层俩数字枚举时2也注意判断即可(千万别忘了某一层少写了这个条件,不然美滋滋~)

复杂度

时间复杂度 O(n^3)

空间复杂度 O(1)

AC代码

c++版本

go版本

繁夜

发表评论


:[微笑]::[撇嘴]::[色]::[发呆]::[得意]::[流泪]::[害羞]::[闭嘴]::[睡]::[大哭]::[尴尬]::[发怒]::[调皮]::[呲牙]::[惊讶]::[难过]::[酷]::[冷汗]::[抓狂]::[吐]::[偷笑]::[可爱]::[白眼]::[傲慢]::[饥饿]::[困]::[惊恐]::[流汗]::[憨笑]::[大兵]::[奋斗]::[咒骂]::[疑问]::[嘘...]::[晕]::[折磨]::[衰]::[骷髅]::[敲打]::[再见]::[擦汗]::[抠鼻]::[鼓掌]::[糗大了]::[坏笑]::[左哼哼]::[右哼哼]::[哈欠]::[鄙视]::[委屈]::[快哭了]::[阴险]::[亲亲]::[吓]::[可怜]::[笑哭]::[doge]::[泪奔]::[无奈]::[托腮]::[斜眼笑]::[喷血]::[惊喜]::[骚扰]::[小纠结]::[我最美]::[羊驼]::[幽灵]::[吃]::[OK]::[爱你]::[抱拳]::[勾引]::[强]::[弱]::[拳头]::[爱心]::[喝彩]::[西瓜]::[啤酒]::[玫瑰]::[凋谢]::[礼物]::[拥抱]::[月亮]::[菊花]::[棒棒糖]::[蛋]::[刀]::[菜刀]::[炸弹]::[手枪]:

刷新评论