找出不是两个数组共有的元素_[数组] N数之和问题
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
解题思路
- 将数组排序
- 定义指针i,left,right。遍历i,将问题转化为在i之后的数组中寻找nums[i]+nums[left]+nums[right]=0的问题(即三数之和可以使用双指针解决)
- 剪枝,去重
代码实现
# 双指针,所以先固定一个数字,用双指针来找到另外两个数字。注意记得剪枝
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
解题思路
- 若数组长度小于3,返回[]
- 排序数组
- 遍历数组
- 跳过重复元素
- 设置左指针left和右指针right,当left < right 时,循环
- get_nums = nums[i] + nums[left] + nums[right], 如果get_nums = target ,返回target
- 若abs(get_nums - target) < abs(res - target) 说明get_nums更靠近目标,更新res
- 剪枝
- 返回结果
代码实现
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
解题思路
- 排序
- 使用双循环固定两个数,用双指针寻找另外两个数,通过比较target大小,移动指针
- 剪枝,去重
代码实现
class
找出不是两个数组共有的元素_[数组] N数之和问题相关推荐
- 找出不是两个数组共有的元素_06.数组(练习篇)
title: LeetCode 第 15 号问题:三数之和(中等) date: '2020-5-23' updated: '2020-5-25' tags: [LeetCode] 题目: # 给你一个 ...
- 找出不是两个数组共有的元素
题目 练习7-4 找出不是两个数组共有的元素 (20 分) 给定两个整型数组,本题要求找出不是两者共有的元素. 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整 ...
- pta 习题集 5-2 找出不是两个数组共有的元素 (5分)
给定两个整型数组,本题要求找出不是两者共有的元素. 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数NN(≤20≤20),随后是NN个整数,其间以空格分隔. 输出格式: 在一行中按照数字 ...
- 找出不是两个数组共有的元素(学习去重复算法)
描述 给定两个整型数组,本题要求找出不是两者共有的元素. ...
- (难得要死)找出不是两个数组共有的元素
题目描述 定两个整型数组,本题要求找出不是两者共有的元素. 输入 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔. 输出 在一行中按照数字给出的顺序输出 ...
- 找出所有不是这两个数组共有的元素
文章目录 引入 代码 运行测试 引入 找出不是两个数组共有的元素.输入一个正整数 n(1<n≤10),再输入 n 个整 数,存入第 1 个数组中:然后输入一个正整数 m(1<m<=1 ...
- 从数组中找出最大的两个数
题目:从数组区间A[lo, hi]中找出最大的两个整数A[x1]和A[x2],要求元素比较的次数尽可能的少. 迭代版1: 如图所示,当整个扫描一遍数组A,找出最大的数x1后,再扫描一次数组剩下的除去x ...
- 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间. ...
- Java 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 示例 1: 输入: [2,2,1] 输出: 1示例 2: 输入: [4,1,2,1,2] 输出: ...
- js 数组添加n次相同元素_数组中两次出现相同元素之间的最大距离
js 数组添加n次相同元素 Prerequisite: Hashing data structure 先决条件: 哈希数据结构 Problem statement: 问题陈述: Find maximu ...
最新文章
- Maya2022基础入门学习教程
- 需求调研计划_拆书营销管理 实施营销调研和预测需求
- Python3--爬取数据之911网站信息爬取
- ubuntu 14.04 如何设置静态ip
- JavaScript 元编程
- 发布《Linux工具快速教程》
- 193. 有效电话号码
- python编辑器中文字体倒立的_matplotlib的安装和允许中文及几种字体
- Python 人气王,JS 比 Java 更受科技公司青睐!
- opencv viz3d 中的坐标系
- 拓扑学(代数拓扑学)的有趣应用
- python公开课免费-公开课 | Python大牛免费带你4天入门Python
- 前端js获取本项目的项目根地址
- Android Studio导入so文件到项目中
- 有的时候print函数不会立即打印的解决办法(flush=True)
- 计算机在现代设计技术中应用,计算机技术在现代建筑设计中的应用
- html模仿抖音,仿抖音示例
- html九宫格实现人像拼图游戏,实例分享jQuery+vue.js实现的九宫格拼图游戏
- 【Java】 类和对象
- panabit之MAC管控