leetcode 249 250 set和map的简单用法
leetcode249,利用了STL中的set
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
set<int> n1(nums1.begin(),nums1.end());
set<int> n2;
;i<nums2.size();i++)
{
if(n1.find(nums2[i])!=n1.end())
{
n2.insert(nums2[i]);
}
}
return vector<int> results(n2.begin(),n2.end());
}
};
思路:set中的元素不重复,利用这一点方便进行最后的插入操作而不用去重。实际上第一个set<int> n1是没有必要的,可以直接vector来查找,但是用set的效率会更高。
下面给出用vector和库里面的find实现的方式:
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
set<int> n2;
;i<nums2.size();i++)
{
auto it=nums1.end();
if((it=find(nums1.begin(),nums1.end(),nums2[i]))!=nums1.end())
{
n2.insert(nums2[i]);
}
}
return vector<int> (n2.begin(),n2.end());
}
};
vector实现
虽然每次创建一个迭代器会耗费内存,总体来说少了一个map会比较折中。
leetcode 250,利用了STL中的map。
class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
map<int,int> n1;
;i<nums1.size();i++)
{
n1[nums1[i]]++;
}
vector<int> results;
;i<nums2.size();i++)
{
)
{
results.push_back(nums2[i]);
n1[nums2[i]]--;
}
}
return results;
}
};
思路:因为要统计频率,题目要求不去重,所以需要统计元素出现频率。但又不知道集合中元素的大小,故无法用数组,所以采用map。
leetcode 249 250 set和map的简单用法的更多相关文章
- HDU1004 Let the Balloon Rise(map的简单用法)
Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- set和map的简单用法
.set(集合)map(映射)都属于关联类容器 都支持查询一个元素是否存在并能够有效地获取元素. set集合的元素总是从小到大排列,set集合通过二分查找树实现.它具备以下两个特点: ①:独一无二的元 ...
- GO的MAP字典简单用法示例
package main import "fmt" type PersonInfo struct { ID string Name string Address string } ...
- listActivity和ExpandableListActivity的简单用法
http://www.cnblogs.com/limingblogs/archive/2011/10/09/2204866.html 今天自己简单的总结了listActivity和Expandable ...
- Android MultiType第三方库的基本使用和案例+DiffUtil的简单用法
1.MultiType简单介绍 1.1.MultiType用于比较复杂的页面. 如下图,今日头条用到了MultiType处理各种复杂的页面. 这种还是比较简单的类型.因为一个页面也就这种类型. ...
- python lambda表达式简单用法【转】
python lambda表达式简单用法 1.lambda是什么? 看个例子: g = lambda x:x+1 看一下执行的结果: g(1) >>>2 g(2) >>& ...
- CATransition(os开发之画面切换) 的简单用法
CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...
- jquery.validate.js 表单验证简单用法
引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...
- NSCharacterSet 简单用法
NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...
随机推荐
- E. Paint the Tree(树形dp)
题:https://codeforces.com/contest/1241/problem/E 题目大意:给你一棵树,每一个点都可以染k种颜色,你拥有无数种颜色,每一种颜色最多使用2次,如果一条边的两 ...
- Metric space,open set
目录 引入:绝对值 度量空间 Example: 开集,闭集 引入:绝对值 distance\(:|a-b|\) properties\(:(1)|x| \geq 0\),for all \(x \in ...
- git实用手册
git.exe clone --progress -v "git@code.sohuno.com:huimingtao/focus-wap.git" "D:\worksp ...
- Django学习之模型层
模型层 查看orm内部sql语句的方法的方法 1.如果是queryset对象,那么可以点query直接查看该queryset的内部sql语句 2.在Django项目的配置文件中,配置一下参数即可实现所 ...
- EmguCV常用函数总结
Emgucv常用函数总结: 读取图片 Mat SCr = new Mat(Form1.Path, Emgu.CV.CvEnum.LoadImageType.AnyColor); //根据路径创建指定的 ...
- python语法基础-函数-递归函数-长期维护
############### 递归 ############## # 递归的定义——在一个函数里再调用这个函数本身 # 递归的最大深度——998 # 二分查找算法 # 你观察这个列表,这是 ...
- Redis学习之热点key重建
在Redis的生产环境中,大量客户端连接请求某一个key,但都需要从DB中获取数据,来回写数据库,如下图: <ignore_js_op> 造成的问题: 大量的线程请求数据库,造成数据库压力 ...
- lua https request 调用
网上资料 引用ssl.https 包 local https = require("ssl.https") 之后按同http一样调用. 但是,这种只最基本的实现了访问https服务 ...
- echo追加和覆盖
追加: echo " " >> 文件名 覆盖: echo " " > 文件名
- mvn -v报java.lang.ClassNotFoundException
Tips: 比如要下载版本3.2.5的,请选择binaries下的apache-maven-3.2.5-bin.zip. binaries 指的是可以执行的. source 指的源码. 下载地址:ht ...