leetcode 1 两数之和 hashmap
主要是hashmap。还有边插入边查找,提高效率和降低空间复杂度。
之前一直用map,结果发现还有hashmap,效率更高。
注意名称空间为
using namespace __gnu_cxx;
问题在于hash_map目前并没有纳入C++ 标准模板库中,在跨平台使用时就可能会出现问题,
但几乎每个版本的STL都提供了相应的实现。
头文件<hash_map>
另外map插入数据时有几种方法。我习惯用make_pair
常用
- map<int, string> mapStudent;
- mapStudent.insert(pair<int, string>(1, "student_one"));
- map<int, string> mapStudent;
- mapStudent.insert(map<int, string>::value_type (1, "student_one"));
- map<int, string> mapStudent;
- mapStudent.insert(make_pair(1, "student_one"));
- mapStudent.insert(make_pair(2, "student_two"));
#include<hash_map>
#include<vector> using namespace __gnu_cxx; class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
/* vector<int> b;
for(int i=0;i<nums.size();i++)
mmap.insert(make_pair(nums[i],i));
for(int i=0;i<nums.size();i++)
{
if((mmap.count(target-nums[i]))&&(mmap[target-nums[i]]!=i))
{
b.push_back(mmap[target-nums[i]]);
b.push_back(i);
break;
}
}*/
vector<int> b;
hash_map<int,int> mmap;
for(int i=0;i<nums.size();i++)
{
mmap.insert(make_pair(nums[i],i));
if((mmap.count(target-nums[i]))&&(mmap[target-nums[i]]!=i))
{
b.push_back(mmap[target-nums[i]]);
b.push_back(i);
break;
}
} return b;
};
};
leetcode 1 两数之和 hashmap的更多相关文章
- 前端与算法 leetcode 1. 两数之和
目录 # 前端与算法 leetcode 1. 两数之和 题目描述 概要 提示 解析 解法一:暴力法 解法二:HashMap法 算法 传入[1, 2], [11, 1, 2, 3, 2]的运行结果 执行 ...
- LeetCode:两数之和、三数之和、四数之和
LeetCode:两数之和.三数之和.四数之和 多数之和问题,利用哈希集合减少时间复杂度以及多指针收缩窗口的巧妙解法 No.1 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在 ...
- leetCode:twoSum 两数之和 【JAVA实现】
LeetCode 两数之和 给定一个整数数组,返回两个数字的索引,使它们相加到特定目标. 您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素. 更多文章查看个人博客 个人博客地址:t ...
- Leetcode 001. 两数之和(扩展)
1.题目要求 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 2.解法一:暴力法(for*for,O(n*n)) ...
- LeetCode 653. 两数之和 IV - 输入 BST(Two Sum IV - Input is a BST)
653. 两数之和 IV - 输入 BST 653. Two Sum IV - Input is a BST 题目描述 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定 ...
- Leetcode 1. 两数之和 (Python版)
有粉丝说我一个学算法的不去做Leetcode是不是浪费,于是今天闲来没事想尝试一下Leetcode,结果果断翻车,第一题没看懂,一直当我看到所有答案的开头都一样的时候,我意识到了我是个铁憨憨,人家是让 ...
- 每天一道面试题LeetCode 01 -- 两数之和
Two Sum 两数之和 Given an array of integers, find two numbers such that they add up to a specific target ...
- Leetcode 167. 两数之和 II - 输入有序数组 By Python
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数. 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2. 说明: 返回的下标值 ...
- LeetCode 167. 两数之和 II - 输入有序数组
题目: 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数. 函数应该返回这两个下标值index1 和 index2,其中 index1 必须小于 index2. 说明: 返回的 ...
随机推荐
- 修改conda和pip源
修改conda源为中科大源 Windows修改C:\Users\user(user替换为当前登陆系统的用户)目录下的.condarc文件 Linux修改家目录下的.condarc文件 channels ...
- oracle 释放表空间到OS(resize)
1.查看表空间里面的对象 SELECT OWNER AS OWNER, SEGMENT_NAME AS SEGMENT_NAME, SEGMENT_TYPE AS SEGMENT_TYPE, SUM ...
- Docker-常用基建的安装与部署
一:Docker安装 1:通过yum安装docker yum -y install gcc yum -y install gcc-c++ yum remove docker \ docker-clie ...
- SAPCAR使用说明
1.首先看一下SAPCAR的功能usage:create a new archive:SAPCAR -c[vir][f archive] [-P] [-C directory] [-A filen ...
- 基于 WebRTC 实现自定义编码分辨率发送
2020年如果问什么技术领域最火?毫无疑问:音视频.2020年远程办公和在线教育的强势发展,都离不开音视频的身影,视频会议.在线教学.娱乐直播等都是音视频的典型应用场景. 更加丰富的使用场景更需要我们 ...
- 单台服务器-利用docker搭建Redis哨兵集群模式
前言:只有一台华为云服务器,所以打算创建三个容器来模拟三个服务器了. 一:拉取redis镜像 二:拉取redis.conf文件 放在自定义的目录下:wget -c http://download.re ...
- Linux防火墙和iptables
1. CentOS 查看防火墙状态: systemctl status firewalld firewall-cmd --state 启停防火墙: # 开启 systemctl start firew ...
- 华为交换机telnet登录时老是提醒是否更改初始密码- Warning: The initial password poses security risks
问题:华为交换机在Telnet登录的时候总是提示初始密码不安全需要修改密码的处理方法 Warning: The initial password poses security risks 如果你输 ...
- 实现一个List集合中的某个元素的求和
List<User> userlist = userService.findAll();Integer sum= userlist .stream().collect(Collectors ...
- Linux-处理用户输入
Linux-处理用户输入 1.命令行参数 1.2读取参数 1.3 读取脚本名 1.4测试参数 2.特殊参数变量 2.1 参数统计 2.2抓取所有的数据 3.移动变量 4.处理选项 5.选项标准化 6. ...