当前位置: 首页 > news >正文

p2p网站建设公司沈阳网站制作聚艺科技

p2p网站建设公司,沈阳网站制作聚艺科技,莱芜定制网站建设公司,潍坊 开发区网站建设1. 三数之和 M :::details 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a b c 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例…

1. 三数之和 M

:::details

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。

注意:答案中不可以包含重复的三元组。

示例 1:

输入:nums = [-1,0,1,2,-1,-4]
输出:[[-1,-1,2],[-1,0,1]]
示例 2:

输入:nums = []
输出:[]
示例 3:

输入:nums = [0]
输出:[]

提示:

0 <= nums.length <= 3000
-105 <= nums[i] <= 105

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/3sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路

因为题目要求输出的是value而不是index,所以为了简单起见,我们上来先来一个排序

然后利用双指针,两头往中间靠

注意去重

package mainimport ("fmt""sort"
)func threeSum(nums []int) [][]int {sort.Ints(nums)// fmt.Println(nums)res := [][]int{}n := len(nums)for i := 0; i < n-2; i++ {l, r := i+1, n-1if nums[i] > 0 {break}if i > 0 && nums[i] == nums[i-1] {// 去重continue}for l < r {in, ln, rn := nums[i], nums[l], nums[r]if in+ln+rn == 0 {res = append(res, []int{in, ln, rn})for l < r && nums[l] == ln {l++}for l < r && nums[r] == rn {r--}} else if in+ln+rn < 0 {l++} else {r--}}}return res
}func main() {nums := []int{-1, 0, 1, 2, -1, -4}fmt.Println(threeSum(nums))
}

:::

2. 四数之和 M

:::details

给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):

0 <= a, b, c, d < n
a、b、c 和 d 互不相同
nums[a] + nums[b] + nums[c] + nums[d] == target
你可以按 任意顺序 返回答案 。

示例 1:

输入:nums = [1,0,-1,0,-2,2], target = 0
输出:[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]
示例 2:

输入:nums = [2,2,2,2,2], target = 8
输出:[[2,2,2,2]]

提示:

1 <= nums.length <= 200
-109 <= nums[i] <= 109
-109 <= target <= 109

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/4sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


func fourSum(nums []int, target int) [][]int {sort.Ints(nums)// fmt.Println(nums)n := len(nums)res := [][]int{}for i := 0; i < n-3; i++ {/*** 因为target可以是负数,所以不能这么剪枝* 例如 [-5,-4,-3,-2,1,5,4,2] target = -14*/// if nums[i] > target {// 	break// }// 去重 [a,a,x,y]if i > 0 && nums[i] == nums[i-1] {continue}for j := i + 1; j < n-2; j++ {in, jn := nums[i], nums[j]twoSum := in + jnif j > i+1 && nums[j] == nums[j-1] {continue}l, r := j+1, n-1for l < r {ln, rn := nums[l], nums[r]temp := twoSum + ln + rnif temp == target {res = append(res, []int{in, jn, ln, rn})// 去重for l < r && nums[l] == ln {l++}for l < r && nums[r] == rn {r--}} else if temp < target {for l < r && nums[l] == ln {l++}} else {for l < r && nums[r] == rn {r--}}}}}return res
}

:::

http://www.yayakq.cn/news/847487/

相关文章:

  • 做网站网站代理的犯法么众包网站建设
  • 做一手房用什么网站网站建设需求计划书
  • 运营网站团队建设福州开发公司
  • 如何建立一个网站请简述流程免费推广网
  • 专门做网站的公司与外包公司有哪些dedecms 获取网站地址
  • 校园微网站建设汉南网站建设
  • 电子商务网站制作公司如何做企业网站宣传
  • 佛山市桂城建设局网站企业网站营销网站
  • 网站建设丩金手指排名壹陆手机端网站建设步骤
  • 免费网站软件制作flash做网站步骤
  • 微转app是用网站做的吗呼和浩特网站制作
  • 奉化网站建设网站建设找客户
  • 创意做网站公司北京网站托管的公司
  • 杭州做网站公司排名e时代速递搜索引擎网站建设
  • 国外文本排版设计网站事业单位网站建设注销情况说明
  • 网站建设的多吗企业网站建设费用大约多少钱
  • 东莞网站建设品牌网站建设的销售术语
  • 学网站开发难吗外贸网站建站赚钱
  • 昆明经济技术开发区官方门户网站线上广告代理平台
  • 淘宝网站建设服务类目选择微信小程序开发基础
  • 网站式登录页面模板下载地址怎么知道网站哪家公司做的
  • 手把手做网站深圳自助企业建站模版
  • 网站商城微信支付硬件开发和软件开发的区别
  • 怎么做带购物功能的网站上海迈诺网站建设
  • 有哪些外贸公司网站做的比较好企业内部网站
  • 什么样的网站做百度广告好做动画网站去哪采集
  • 公司网站策划宣传wordpress为什么好卡
  • 公司网站如何宣传推广汕头58同城
  • 网站的打开速度自己如何建立网站
  • ps 做网站切图营销推广ppt