【leetcode】 算法题1 两数之和
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
#include <vector>
#include <map>
/**
*
*给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
*你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
*case:
*给定 nums = [2, 7, 11, 15], target = 9
*因为 nums[0] + nums[1] = 2 + 7 = 9
*所以返回 [0, 1]
*/
using namespace std;
class Solution {
public:// 两两对比的方式,时间复杂度为O(n2)vector<int> twoSum(vector<int>& nums, int target) {vector<int> ret;// 第一种/*for (int i = 0; i < nums.size(); i++) {for (int j = i + 1; j < nums.size(); j++) {if (nums[i] + nums[j] == target) {ret.push_back(i);ret.push_back(j);return ret;}}}*/// 第二种:数据插入到hashmap里,然后通过target - nums[i]来确定,时间复杂度为O(2n)map<int, int> m;for (int i = 0; i < nums.size(); i++) {m[nums[i]] = i;}for (int i = 0; i < nums.size(); i++) {if (m.count(target - nums[i]) > 0 && i != m[target - nums[i]]) {ret.push_back(i);ret.push_back(m[target - nums[i]]);return ret;}}return ret;}
};
转载于:https://www.cnblogs.com/baochuan/p/9019465.html
【leetcode】 算法题1 两数之和相关推荐
- LeetCode第一题:两数之和(Java)
文章目录 前言 一.题目内容 二.解题过程 1. 解题思路 2. 解题代码 三.提交结果 总结 前言 坚持下去便可胜利.只要心还在,梦想还在,我们还可以坚持直至胜利.没有过不去的坎,只有害怕的心.莫害 ...
- LeetCode简单题之两数之和
题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组 ...
- 学渣的刷题之旅 leetcode刷题 1.两数之和
给定一个整数数组nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素 ...
- LeetCode简单题之两数之和 IV - 输入 BST
题目 给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true. 示例 1: 输入: root = [5,3,6,2,4,null, ...
- leetcode刷题之 两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例:11 给定 nums = [2, 7, 11, 15], targe ...
- Leetcode刷题第1题:两数之和(基于Java语言)
** Leetcode刷题第1题:两数之和(基于Java语言) ** 题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标 ...
- LeetCode题 - 1 两数之和
LeetCode题 - 1 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案. ...
- leetcode 第1题【两数之和】C语言
leetcode 第1题[两数之和] 今天开始刷 leetcode 了,坚持每天做 因为不太会编程,只是想记录下来,若有错误,欢迎指正. /*** Note: The returned array m ...
- Leetcode:0002(两数之和)
LeetCode:0002(两数之和) 题目描述:给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这 ...
最新文章
- dataframe 按条件删行_根据列值删除Pandas中的DataFrame行
- UiBot带你两分钟看懂RPA是什么
- 又是找 Bug 的一天! | 每日趣闻
- TensorFlow – A Collection of Resources
- MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)
- wince 串口调试信息输出
- qt中判断对象是否为空的方式
- rust里面的awm叫什么_铅笔里面有铅吗?为什么叫铅笔呢?
- php 图片文件转base64编码格式,php如何将图片转为base64编码格式
- 集成学习:Boosting与Bagging
- Centos系统设置
- [读论文]三维激光扫描点云数据处理研究进展、挑战与趋势(2017)
- Attempt to invoke virtual method 'void android.support.v4.app.Fragment.setNextAnim(int)'
- 行人重识别论文阅读8-FastReID京东快速行人重识别
- 计算机公式固定数值符号,【2人回答】Excel如何锁定,如何Excel某计算公式中锁定其中一个数值?-3D溜溜网...
- c语言 实现markdown解析,marked
- 浏览器汇总、可信浏览器
- 小王利用计算机设计了一个计算程序,小王利用计算机设计了一个计算程序,输入和输出的数据如下表:那么,当输入数据是8时,输出的数据是[]A.B.C.D.-七年级数学...
- MATLAB 学习笔记(3)MATLAB 矩阵的进阶操作
- c++ 统计一个一篇英文小说的单词数,从文件读取小说