度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?
输入描述:

首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)

输出描述:

如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1

示例1

输入

10

10 10 10 10 20 20 30 30 40 40

输出

30

思路:排序之后去重。
方法一:直接调用STL去重。

  #include<iostream> #include<algorithm> using namespace std;  int main(){ int n,tmp; cin>>n; vector<int> v; while(n--){ cin>>tmp; v.push_back(tmp); } sort(v.begin(),v.end()); v.erase(unique(v.begin(),v.end()),v.end()); cout<<(v.size()<3?-1:v[2]); return 0; }

方法二:双指针法去重。

#include<iostream>
#include<algorithm>
using namespace std;
int main(){int n,tmp;cin>>n;vector<int> v;while(n--){cin>>tmp;v.push_back(tmp);}sort(v.begin(),v.end());int index=0;for(int i=1;i<v.size();i++){if(v[index]!=v[i])v[++index]=v[i];}cout<<(index+1<3?-1:v[2]);return 0;
}

发散一:假设允许一个重复的情况。

class Solution {
public:int removeDuplicates(vector<int>& nums) {if(nums.size()<=2) return nums.size();int index=2;for(int i=2;i<nums.size();i++){if(nums[index-2]!=nums[i])nums[index++]=nums[i];}return index;}
};

发散二:假设允许k个重复的情况。
可以用一个变量count来记录允许重复的次数,下面是leetcode相关问题的通解。

class Solution {
public:int removeDuplicates(vector<int>& A,k) {int n=A.size();if (n <= k) return n;int i = 1, j = 1;int cnt = 1;while (j < n) {if (A[j] != A[j-1]) {cnt = 1;A[i++] = A[j];}else {if (cnt < k) {A[i++] = A[j];cnt++;}}++j;}return i;}
};

百度2017春招笔试真题编程题集合--买帽子相关推荐

  1. 题解-百度2017春招笔试真题编程题集合

    题目链接:https://www.nowcoder.com/test/4998655/summary 一共五题,从第五题开始写,难度由难到易 ----------------------------- ...

  2. 网易2017春招笔试真题编程题集合

    网易2017春招笔试真题编程题集合 题目来源:牛客网 https://www.nowcoder.com/profile/7952866/test/7811777/83061 1.双核处理 题目描述 一 ...

  3. 网易2017春招笔试真题编程题集合(2)——赶去公司

    时间限制:1秒 空间限制:32768K 终于到周末啦!小易走在市区的街道上准备找朋友聚会,突然服务器发来警报,小易需要立即回公司修复这个紧急bug.假设市区是一个无限大的区域,每条街道假设坐标是(X, ...

  4. 网易2017春招笔试真题编程题集合(5)——魔力手环

    小易拥有一个拥有魔力的手环上面有n个数字(构成一个环),当这个魔力手环每次使用魔力的时候就会发生一种奇特的变化:每个数字会变成自己跟后面一个数字的和(最后一个数字的后面一个数字是第一个),一旦某个位置 ...

  5. 百度2017春招笔试

    题目链接 https://www.nowcoder.com/profile/8575360/test/8248155/95827 第四题 给定随机数组a[N](可能包含重复数字),要求对它进行排序.其 ...

  6. 滴滴出行2017秋招笔试真题-编程题汇总_Java实现

    滴滴出行2017秋招笔试真题-编程题汇总_Java实现 注:有的题参考别人的思路,用我最容易理解的代码编的程序,所以可以不能最优的解法,后续我会进行更新,只是一个思路,我的笔记而已,所以不喜勿喷~~~ ...

  7. 【笔试题】京东2017秋招笔试真题

    笔试题 京东2017秋招笔试真题 1.进制均值 时间限制 C/C++语言 1000MS;其他语言 3000MS 内存限制 C/C++语言 65536KB;其他语言 589824KB 题目描述 尽管是一 ...

  8. 美团点评2018春招后台开发方向编程题 - 题解

    美团这次的春招后端方向是两个编程题,没有考比较难的算法,如果日积月累刷题还是可以做出来的. 第一题:字符串距离 题目: 给出两个相同长度的由字符 a 和 b 构成的字符串,定义它们的距离为对应位置不同 ...

  9. 3、寻找三角形--百度2017春招

    [编程题] 寻找三角形 时间限制:1秒 空间限制:32768K 三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用'R', 'G', 'B'表示.  现在要找出三个点,并 ...

  10. 【滴滴出行】2017秋招笔试真题(智力题)

    题目链接 然鹅我智力有限qwq而且这种题真的做了一部分就不想动了... 1.有50家人家,每家一条狗.有一天警察通知,50条狗当中有病狗,行为和正常狗不一样.每人只能通过观察别人家的狗来判断自己家的狗 ...

最新文章

  1. linux进程管理之进程创建
  2. 嵌入式网络那些事LwIP协议深度剖析与实战演练pdf
  3. 从简单工厂到工厂方法
  4. 【生成模型】极大似然估计,你必须掌握的概率模型
  5. sql server之数据库语句优化
  6. HttpContext.Current.Cache vs. HttpRuntime.Cache
  7. 解决Win10不能访问共享文件夹的问题
  8. js 异步操作打开新页面被浏览器拦截的问题
  9. 【BZOJ4543】【POI2014】Hotel加强版(长链剖分)
  10. js更新数组对象_7 种Vue 数据已更新而页面没有更新的情况及深化总结(收藏)
  11. 1NF 2NF 3NF BCNF
  12. 【今日CV 视觉论文速览】26 Nov 2018
  13. CentOS 7下彻底卸载MySQL数据库
  14. redis实现可重入锁
  15. 网络营销之百度营销技巧(一) 百度知道推广日常手册
  16. 沙雕动画资源素材大全/小白零基础快速入门沙雕动画/三天快速上手开始制作沙雕动画/
  17. tomcat10 实例化servlet 500错误解决办法
  18. 如何隐藏logo 高德地图api_高德地图api 去掉logo
  19. 联通鸿蒙卡怎么样,联通不限流量卡,联通无限流量,正规资费
  20. JAVA:实现Blowfish区块加密算法(附完整源码)

热门文章

  1. 如何用公式编辑器打半中括号?
  2. 【办公-WORD】Word 背景颜色层次分析
  3. 第四章——数据库安全性
  4. 【微信小程序】微信公众平台合法域名设置
  5. 洛谷P1427 小鱼的数字游戏
  6. php 腾讯短信接口api,ThinkPHP5——接入腾讯云短信API
  7. 阿里云ACP考试模拟题一
  8. word2016文档在正文分栏情况下而时脚注不分栏
  9. idea下载postgresql的驱动失败Failed to download ,报connect timed out的解决方法
  10. Unity笔记-29-ARPG游戏项目-13-打击感(卡肉)与僵直感