ji那天好像是周六。。。。。吃完饭意识到貌似今天要有比赛(有题解当然要做啦),跑回寝室发现周日才开始233333

======================================================================

leetcode217 Contains Duplicate

leetcode219 Contains Duplicate II

leetcode228 Summary Ranges

=======================================================================

217讲的是
给你n个数字,判断下是否有重复的数据出现。

我的思路
丢到unordered_map里检查下就行。。。

 class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
int n=nums.size();
unordered_map<int,int> m;
for(int i=;i<n;i++){
if(m.find(nums[i])==m.end()){
m[nums[i]]=;
}else return true;
}
return false;
}
};

217

讨论版里没有什么新奇的思路。。。

=======================================================================

219讲的是
给你n个数字和一个数字k,判断下是否有重复的数据出现在任意长度为k的区间内。
也就是说如果有任意ij满足nums[i]==nums[j]&&abs(i-j)<=k则返回真

我的思路
丢到unordered_map里检查下就行。。。距离小于i-k的erase掉就好。。。

 class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
int n=nums.size();
unordered_map<int,int> m;
for(int i=;i<min(n,k+);i++){
if(m.find(nums[i])==m.end()){
m[nums[i]]=;
}else return true;
}
for(int i=min(n,k+);i<n;i++){
m.erase(nums[i-k-]);
if(m.find(nums[i])==m.end()){
m[nums[i]]=;
}else return true;
}
return false;
}
};

219

恩,其实这种判断元素存在性的题目,用set会更好些。

========================================================================

228讲的是
给你n个数字(有序,无重),把点转化为区间。
比如输入[0,1,2,4,5,7],输出["0->2","4->5","7"](字符串数组)

我的思路
线性的扫就好了。。。O(n)啊。。。不知道为什么难度被定义为中等。。

 class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
int n=nums.size();
vector<string> aim;
if(!n)return aim;
int s=nums[],t=nums[];
for(int i=;i<n;i++){
if(nums[i]!=nums[i-]+){
t=nums[i-];
char temp[];
if(s==t)
sprintf(temp,"%d",s);
else sprintf(temp,"%d->%d",s,t);
string s_temp(temp);
aim.push_back(s_temp);
s=nums[i];
}
}
t=nums[n-];
char temp[];
if(s==t)
sprintf(temp,"%d",s);
else sprintf(temp,"%d->%d",s,t);
string s_temp(temp);
aim.push_back(s_temp);
return aim;
}
};

228

我想使用to_string函数来着的,但是我的codeblocks一直报错。。。重装系统+VS当做官方IDE已经迫在眉睫了

2017-3-11 leetcode 217 219 228的更多相关文章

  1. [Leetcode 217&219]寻找数组中的重复值Contains Duplicate I & II

    [题目1] Given an array of integers, find if the array contains any duplicates. Your function should re ...

  2. 2017年11月Dyn365/CRM用户社区活动报名

    UG是全球最大Dynamics的用户组织,由最终用户自发组织,由行业有经验的专家自愿贡献知识和经验的非营利机构,与会人员本着务实中立的态度,不进行推介产品,服务以及其他营销行为.在美国,微软Dynam ...

  3. WPS 表格筛选两列相同数据-完美-2017年11月1日更新

    应用: 1.选出A列中的数据是否在B列中出现过: 2.筛选出某一批序号在一个表格里面的位置(整批找出) 3.其实还有其他很多应用,难描述出来... ... A列中有几百的名字,本人想帅选出B列中的名字 ...

  4. 2017年11月GitHub上最热门的Java项目出炉

    2017年11月GitHub上最热门的Java项目出炉~ 一起来看看这些项目你使用过哪些呢? 1分布式 RPC 服务框架 dubbohttps://github.com/alibaba/dubbo S ...

  5. 【主席树维护mex】 【SG函数递推】 Problem H. Cups and Beans 2017.8.11

    Problem H. Cups and Beans 2017.8.11 原题: There are N cups numbered 0 through N − 1. For each i(1 ≤ i ...

  6. leetcode——217. 存在重复元素

    leetcode--217. 存在重复元素 题目描述:给定一个整数数组,判断是否存在重复元素. 如果存在一值在数组中出现至少两次,函数返回 true .如果数组中每个元素都不相同,则返回 false ...

  7. 【LeetCode】217 & 219 - Contains Duplicate & Contains Duplicate II

     217 - Contains Duplicate Given an array of integers, find if the array contains any duplicates. You ...

  8. &lt;LeetCode OJ&gt; 217./219. Contains Duplicate (I / II)

    Given an array of integers, find if the array contains any duplicates. Your function should return t ...

  9. 【LeetCode】219. Contains Duplicate II 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 使用set 使用字典 日期 题目地址:https:/ ...

随机推荐

  1. 浅谈ByteBuffer转换成byte[]时遇到的问题

    有些时候我们要把ByteBuffer转换成byte[]来使用.于是很多时候会用以下代码来转换: ByteBuffer buf; .....(一些往buffer写数据的操作) byte[] bs= ne ...

  2. 【Oracle】truncate分区表

    分区表是生产中常用的一种表,它可以实现数据的按类存放,极大的提高了数据的查询及维护.当我们不需要某一分区的数据时,可以采用truncate来清空分区.实验如下: SQL)) partition by ...

  3. dubbo之线程模型

    事件处理线程说明 如果事件处理的逻辑能迅速完成,并且不会发起新的IO请求,比如只是在内存中记个标识,则直接在IO线程上处理更快,因为减少了线程池调度. 但如果事件处理逻辑较慢,或者需要发起新的IO请求 ...

  4. GrepWin:Win7下的文本替换工具

    工作环境退回到Win7之后,内容查找功能非常不给力,推荐一个文本内容查找工具grepWin. Win7下的文本查找/替换工具: grepWin

  5. 读书笔记「Python编程:从入门到实践」_7.用户输入和while循环

    7.1 函数input()的工作原理 函数input() 让程序暂停运行,等待用户输入一些文本.获取用户输入后,Python将其存储在一个变量中,以方便你使用. message = input(&qu ...

  6. MOOC推荐及三门基础学科

    top1:学堂在线 http://www.xuetangx.com/ top2:网易云课堂 http://study.163.com/ top3:coursera https://www.course ...

  7. Altova MapForce AMS/ACI/ISF自定义模板

    目前为止,我在百度上得到关于MapForce的信息少之又少,所以把自己的一些经验写下来,与大家分享. 如果要生成xml的话,就可以直接创建xml架构当作数据的目标文件. 以下是我做的AMS&A ...

  8. C#判断文件是否存在 //创建txt文件

    if(System.IO.File.Exists(@"")) { } if (System.IO.File.Exists(HttpRuntime.AppDomainAppPath ...

  9. day35-2 类的三大特性---多态,以及菱形继承问题

    目录 菱形继承问题 经典类 新式类 菱形继承 大招 多态与多态性 多态 多态性 多态在Python中的体现 鸭子类型(重要) 结论 菱形继承问题 经典类 没有继承object类的就是经典类,只有Pyt ...

  10. redis客户端连接到服务器的步骤

    和大多数客户端连接到服务器一样,redis-cli连接到服务器也主要分为两个阶段,请求连接阶段和数据传送阶段.具体来讲redis-cli做的事情有: 1.以socket方式建立连接: 2,选择相应的数 ...