leetcode 1304. 和为零的 N 个不同整数

这篇具有很好参考价值的文章主要介绍了leetcode 1304. 和为零的 N 个不同整数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 题目描述
  • 解题思路
  • 执行结果
leetcode 1304. 和为零的 N 个不同整数.

题目描述

  1. 和为零的 N 个不同整数

给你一个整数 n,请你返回 任意 一个由 n 个 各不相同 的整数组成的数组,并且这 n 个数相加和为 0 。

示例 1:

输入:n = 5 输出:[-7,-1,1,3,4] 解释:这些数组也是正确的 [-5,-1,1,2,3],[-3,-1,2,-2,4]。 示例 2:

输入:n = 3 输出:[-1,0,1] 示例 3:

输入:n = 1 输出:[0]

提示:

1 <= n <= 1000

解题思路

法1

指针:\

和值为0

我们可以考虑使用指针的方法来解决

维护一个指针指向数组的开始位置与结束位置,分别给他们的数值赋值为相反数,这样和值值就为0了

指针向中间移动,直到左指针>右指针不成立时结束循环,.并返回结果数组

  • 时间复杂度(O(n))
  • 空间复杂度(O(1))

执行结果

法1
func sumZero(n int) []int {
    //返回结果数组
    a:=make([]int,n)
    //赋值
    for i:=0;i<n/2;i++{
        //i位赋值为i+1(从0开始)
        a[i]=i+1
        //n-1-i位赋值为-i-1(最后一个位置)
        a[n-i-1]=-(i+1)
    }
    //返回结果
    return a
}

执行结果: 通过 显示详情 查看示例代码 添加备注

执行用时: 0 ms , 在所有 Go 提交中击败了 100.00% 的用户 内存消耗: 2.1 MB , 在所有 Go 提交中击败了 81.48% 的用户 通过测试用例: 42 / 42 炫耀一下:



本文由 mdnice 多平台发布文章来源地址https://www.toymoban.com/news/detail-515681.html

到了这里,关于leetcode 1304. 和为零的 N 个不同整数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。(哈希法)

    思路: 当题意中需要判断某个元素是否出现过,或者某个元素是否在这个集合里出现过。 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组

    2024年02月08日
    浏览(34)
  • 【LeetCode热题100】【子串】和为 K 的子数组

    题目 给你一个整数数组  nums  和一个整数  k  ,请你统计并返回  该数组中和为  k   的子数组的个数  。 子数组是数组中元素的连续非空序列。 示例 1: 示例 2: 提示: 1 = nums.length = 2 * 104 -1000 = nums[i] = 1000 -107 = k = 107 暴力  直接两层循环找出所有连续子数组的和,这个

    2024年01月19日
    浏览(27)
  • 【前缀和】LeetCode 560. 和为k的字数组

    力扣560题,链接:https://leetcode.cn/problems/subarray-sum-equals-k 暴力法,三重for循环,时间复杂度 O ( N 3 ) O(N^3) O ( N 3 ) ,会超时。 思路:两个for循环遍历起始位置和终止位置,第三个for遍历求解这段区间的和是否为k。 代码略。 在暴力法中我们发现会在很多重复计算,比如求前1

    2024年02月16日
    浏览(30)
  • 【LeetCode】双指针求解和为s的两个数字

    Problem: 剑指 Offer 57. 和为s的两个数字 首先来讲解一下本题的思路 我们看到本题的意思很简单,就是去这个 nums 这个数组中进行寻找,如果找到了两个数相加之和为 target 的话,那构成一个结果集并返回 接下去我们来分析一下本题的思路 暴力解法 首先第一种,我们都会想到的

    2024年02月09日
    浏览(34)
  • Leetcode-每日一题【剑指 Offer II 010. 和为 k 的子数组】

    给定一个整数数组和一个整数 k ,请找到该数组中和为 k 的连续子数组的个数。 示例 1: 输入: nums = [1,1,1], k = 2 输出: 2 解释: 此题 [1,1] 与 [1,1] 为两种不同的情况 示例 2: 输入: nums = [1,2,3], k = 3 输出: 2 提示: 1 = nums.length = 2 * 104 1000 = nums[i] = 1000 107 = k = 107 前置知识 前缀和

    2024年02月15日
    浏览(37)
  • 【算法】双指针——leetcode盛最多水的容器、剑指Offer57和为s的两个数字

    盛水最多的容器 (1)暴力解法   算法思路:我们枚举出所有的容器大小,取最大值即可。   容器容积的计算方式:   设两指针 i , j ,分别指向水槽板的最左端以及最右端,此时容器的宽度为 j - i 。由于容器的高度由两板中的较短的板决定,因此可得容积公式 :

    2024年02月13日
    浏览(37)
  • leetCode 2915. 和为目标值的最长子序列的长度 + 动态规划 +01背包 + 空间优化 + 记忆化搜索 + 递推

    2915. 和为目标值的最长子序列的长度 - 力扣(LeetCode) 给你一个下标从  0  开始的整数数组  nums  和一个整数  target  。返回和为  target  的  nums  子序列中,子序列  长度的最大值  。如果不存在和为  target  的子序列,返回  -1  。 子序列  指的是从原数组中删除一些

    2024年02月06日
    浏览(35)
  • 题目:1893.检查是否区域内所有整数都被覆盖

    ​​ 题目来源:         leetcode题目,网址:1893. 检查是否区域内所有整数都被覆盖 - 力扣(LeetCode) 解题思路:        start 和 end 的取值范围是 1- 50,因此可以使用比特位位数为 64 的 Long 来表示,第 i 位为 1表示 i 在范围内,否则不在。          获得范围后,通过逻辑

    2024年02月12日
    浏览(27)
  • leetcode分类刷题:易混题辨析一、209. 长度最小的子数组 vs 560. 和为K的子数组

    1、刷题慢慢积累起来以后,遇到相似的题目时,会出现算法思路混淆了 2、这两道题都是对 连续子数组加和 进行考察,细节区别在于数组元素在209. 长度最小的子数组为 正整数(窗口增加元素递增,减少元素递减) ,在560. 和为K的子数组为 整数 3、209. 长度最小的子数组采

    2024年02月10日
    浏览(32)
  • 某软件的一个模块的需求规格说明书中描述【软件测试题目】

    某软件的一个模块的需求规格说明书中描述 (1)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2% (2)非年薪制员工:严重过失,扣除当月薪资的8%;过失,扣除当月薪资的4% (1)分析原因及结果 原因 c1:年薪制员工 c2:非年薪制员工 c3:过失 c4:严重过失

    2024年02月08日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包