技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后到中级难度,最后到hard难度全部完。目前我选择C语言,Python和Java作为实现语言,因为这三种语言还是比较典型的。由于篇幅和精力有限,其他语言的实现有兴趣的朋友请自己尝试。

如果有任何问题可以在文章后评论或者私信给我。

如果有朋友希望我讲些其他话题,请在评论区留言或者私信给我。

持续分享,敬请关注。


LeetCode 1304. 和为零的N个唯一整数(Find N Unique Integers Sum up to Zero)

问题描述:

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

注:

  • 1 <= n <= 1000;

示例:

C语言实现:

从题目给的示例来看,题目对结果的宽容度非常大,没用做任何限制。

假设n = 7,那么下面的结果都是成立的:

[-1,-2,-3,1,2,3,0]

[-1,-2,-3,-4,1,2,7]

[-6,-4,-2,0,2,4,6]

以上三种都很容易实现。

第一种,是由递增整数序列[1, n/2]和[-n/2,-1]组成的,如果n为奇数,那么再追加一个0元素;

第二种,如果n是偶数,则结果由递增整数序列[1, n/2]和[-n/2, -1]组成,如果为奇数,先将n添加到结果中,然后计算,如果n-3大于等于0,结果在加上递增整数序列[1,(n-3)/2] 和 [-(n+1)/2, -1];

第三种,这是最容易实现的。它是由整数序列[1-n, n]按照步长2过滤出的子序列,在具体实现种,用一个简单的for语句即可实现。

具体代码如下:

Java语言实现:

Java 的实现和C语言的实现一致,不再撰述。

代码如下:

Python语言实现:

Python 的实现思路和C语言的实现一致,不再撰述。

我们可以直接用range输出结果。

代码如下:

递增的整数序列链表的插入_LeetCode基础算法题第178篇:和为零的N个唯一整数相关推荐

  1. 递增的整数序列链表的插入_每日算法题 | 剑指offer 链表专题 (5)链表中倒数第k个节点...

    点击上方"Jerry的算法和NLP",选择"星标"公众号 重磅干货,第一时间送达 题目 链表中倒数第k个节点 题目要求 输入一个链表的头结点,从尾到头反过来打印 ...

  2. 数组元素替换_LeetCode基础算法题第183篇:一维数组的重新洗牌

    技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后到中级难度,最后到hard难度全部完.目前我选择C语言,Python和Java作为实现语言,因为这三种语 ...

  3. 实现链栈的各种基本运算的算法_LeetCode基础算法题第78篇:如何不用加减号实现两数的加法运算?...

    一直很纠结算法的文章应该怎么写.最后觉得还是从最简单的level开始写吧,一开始就弄些重量级的,什么人工智能,机器学习的算法,还要有大量的数学以及优化的知识,小白们估计会很郁闷,当然我也不一定能做出来 ...

  4. python 数组赋值_LeetCode基础算法题第182篇:一维数组的运行总和

    技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后到中级难度,最后到hard难度全部完.目前我选择C语言,Python和Java作为实现语言,因为这三种语 ...

  5. python 二分查找_LeetCode基础算法题第120篇:二分查找算法

    技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后> 到中级难度,最后到hard难度全部完.目前我选择C语言,Python和Java作为实现语言,因 ...

  6. c语言求一个数的位数不用循环_LeetCode基础算法题第181篇:将数字减少为零的步骤数...

    技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后到中级难度,最后到hard难度全部完.目前我选择C语言,Python和Java作为实现语言,因为这三种语 ...

  7. 习题2.4 递增的整数序列链表的插入 (15 分)

    习题2.4 递增的整数序列链表的插入 (15 分) 本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性. 函数接口定义: List Insert( List ...

  8. 习题2.4 递增的整数序列链表的插入(15 分)浙大版《数据结构(第2版)》题目集...

    习题2.4 递增的整数序列链表的插入(15 分) 本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性. 函数接口定义: List Insert( List L ...

  9. c语言链表递增,[C语言][PTA][2019Fall] 6-28 递增的整数序列链表的插入 (15 point(s))

    Post Views: 80 最后更新时间: 2021-04-02 20:16:17 () 声明 这是 拼题A(PTA)<中M2019秋C入门和进阶练习集>的习题.原题在 https:// ...

最新文章

  1. php编程题试题和答案,比较基础的php面试题及答案-编程题部分
  2. activemq高级客户端选项
  3. php curl模拟post提交,php curl模拟post提交数据示例
  4. go gorm框架一对多查询代码示例
  5. chmod 文件夹及子文件夹_了解linux文件属性之chgrp,chown,chmod
  6. linux ls使用方法,Linux/Ubuntu ls命令详解使用格式和方法
  7. WPF中设置ListView的Items颜色交替显示
  8. Python爬虫学习round01
  9. 【JAVA笔记】线程(1):多线程的介绍和实现
  10. [矩阵的QR分解系列二] 吉文斯(Givens)变换
  11. android 辅助功能_关于辅助功能的9个神话
  12. 2018看得见的未来:数字化医疗发展三大看点
  13. 【思科、华为、华三这三大认证,选哪个考最好?】
  14. 你若安好便是晴天nbsp;---------…
  15. 海岸TDM平台性能-续
  16. 安卓手机端微信文件存储位置
  17. 监控系统为什么要加流媒体服务器,视频监控系统为什么要使用流媒体服务器做视频分发?...
  18. 【MySQL】数据类型
  19. poj 1830 开关问题
  20. 15.unsafe类的CAS是怎么保证原子性的?

热门文章

  1. pads9.5 (PCB design)
  2. M0/M3的异常和中断
  3. 【ActiveMQ】消息生产者自动注入报错:Could not autowire. No beans of 'JmsMessagingTemplate' type found
  4. vscode 生成mvc_ASP.NET MVC 简介(附VS2019和VSCode版示例)
  5. 非文学翻译理论与实践_2019年北京语言大学翻译学专业考研经验分享
  6. 腾讯网游加速器大升级!5月31日起仅支持国服游戏加速 你用过吗?
  7. 51Talk联合创始人兼COO张礼明离职
  8. 发力金融市场,中兴通讯有何硬实力?
  9. 最长续航达19小时,Surface Laptop 4商用版发售
  10. 世界地球日:全国网友用手机种出“保护黄河幸福林”