leetcode_1. 两数之和

题目描述

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例: 给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/two-sum

解题思路

利用哈希表,在迭代中判断是否存在target-nums[i]这一元素,然后将tmp和其索引存入哈希表中

在python中可以用字典表示哈希表

代码实现

class 

注意:此题不适合使用双指针,因为需要先对数组进行排序,而排序后,数组的下标会被打乱,结果要求返回的数字的下标

leetcode_15. 三数之和

题目描述

给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。
注意:答案中不可以包含重复的三元组。
示例:
给定数组 nums = [-1, 0, 1, 2, -1, -4],
满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]
来源:力扣(LeetCode) 链接:https://dev.lingkou.xyz/problems/3sum

解题思路

  1. 将数组排序
  2. 定义指针i,left,right。遍历i,将问题转化为在i之后的数组中寻找nums[i]+nums[left]+nums[right]=0的问题(即三数之和可以使用双指针解决)
  3. 剪枝,去重

代码实现

# 双指针,所以先固定一个数字,用双指针来找到另外两个数字。注意记得剪枝

leetcode_16. 最接近的三数之和

题目描述

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。
例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.
与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).
来源:力扣(LeetCode) 链接:https://dev.lingkou.xyz/problems/3sum-closest

解题思路

  1. 若数组长度小于3,返回[]
  2. 排序数组
  3. 遍历数组
  4. 跳过重复元素
  5. 设置左指针left和右指针right,当left < right 时,循环
    1. get_nums = nums[i] + nums[left] + nums[right], 如果get_nums = target ,返回target
    2. 若abs(get_nums - target) < abs(res - target) 说明get_nums更靠近目标,更新res
    3. 剪枝
  1. 返回结果

代码实现

class 

leetcode_18. 四数之和

题目描述

给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。
注意:
答案中不可以包含重复的四元组。
示例:
给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。
满足要求的四元组集合为: [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ]
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/4sum

解题思路

  1. 排序
  2. 使用双循环固定两个数,用双指针寻找另外两个数,通过比较target大小,移动指针
  3. 剪枝,去重

代码实现

class 

找出不是两个数组共有的元素_[数组] N数之和问题相关推荐

  1. 找出不是两个数组共有的元素_06.数组(练习篇)

    title: LeetCode 第 15 号问题:三数之和(中等) date: '2020-5-23' updated: '2020-5-25' tags: [LeetCode] 题目: # 给你一个 ...

  2. 找出不是两个数组共有的元素

    题目 练习7-4 找出不是两个数组共有的元素 (20 分) 给定两个整型数组,本题要求找出不是两者共有的元素. 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整 ...

  3. pta 习题集 5-2 找出不是两个数组共有的元素 (5分)

    给定两个整型数组,本题要求找出不是两者共有的元素. 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数NN(≤20≤20),随后是NN个整数,其间以空格分隔. 输出格式: 在一行中按照数字 ...

  4. 找出不是两个数组共有的元素(学习去重复算法)

    描述 给定两个整型数组,本题要求找出不是两者共有的元素.‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬ ...

  5. (难得要死)找出不是两个数组共有的元素

    题目描述 定两个整型数组,本题要求找出不是两者共有的元素. 输入 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔. 输出 在一行中按照数字给出的顺序输出 ...

  6. 找出所有不是这两个数组共有的元素

    文章目录 引入 代码 运行测试 引入 找出不是两个数组共有的元素.输入一个正整数 n(1<n≤10),再输入 n 个整 数,存入第 1 个数组中:然后输入一个正整数 m(1<m<=1 ...

  7. 从数组中找出最大的两个数

    题目:从数组区间A[lo, hi]中找出最大的两个整数A[x1]和A[x2],要求元素比较的次数尽可能的少. 迭代版1: 如图所示,当整个扫描一遍数组A,找出最大的数x1后,再扫描一次数组剩下的除去x ...

  8. 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

    给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间. ...

  9. Java 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 示例 1: 输入: [2,2,1] 输出: 1示例 2: 输入: [4,1,2,1,2] 输出: ...

  10. js 数组添加n次相同元素_数组中两次出现相同元素之间的最大距离

    js 数组添加n次相同元素 Prerequisite: Hashing data structure 先决条件: 哈希数据结构 Problem statement: 问题陈述: Find maximu ...

最新文章

  1. Maya2022基础入门学习教程
  2. 需求调研计划_拆书营销管理 实施营销调研和预测需求
  3. Python3--爬取数据之911网站信息爬取
  4. ubuntu 14.04 如何设置静态ip
  5. JavaScript 元编程
  6. 发布《Linux工具快速教程》
  7. 193. 有效电话号码
  8. python编辑器中文字体倒立的_matplotlib的安装和允许中文及几种字体
  9. Python 人气王,JS 比 Java 更受科技公司青睐!
  10. opencv viz3d 中的坐标系
  11. 拓扑学(代数拓扑学)的有趣应用
  12. python公开课免费-公开课 | Python大牛免费带你4天入门Python
  13. 前端js获取本项目的项目根地址
  14. Android Studio导入so文件到项目中
  15. 有的时候print函数不会立即打印的解决办法(flush=True)
  16. 计算机在现代设计技术中应用,计算机技术在现代建筑设计中的应用
  17. html模仿抖音,仿抖音示例
  18. html九宫格实现人像拼图游戏,实例分享jQuery+vue.js实现的九宫格拼图游戏
  19. 【Java】 类和对象
  20. panabit之MAC管控

热门文章

  1. UITableViewCell 添加 checkbox 多选
  2. 微信小程序/js上传图片值腾讯云cos
  3. getset原子性 redis_对比各类分布式锁缺陷,抓住Redis分布式锁实现命门
  4. 今日头条品质优化 - 图文详情页秒开实践
  5. Javascript基础知识笔记三
  6. C#中获取今天是星期几
  7. 以软件工作为例,传统武术如何实战
  8. Android Studio下载Gradle一直失败,使用正确的下载地址
  9. 没想明白:JAVA的char是2字节,如何实现18030的4字节?
  10. LINUX SHELL为awt指定分隔符