[简单-剑指 Offer 53 - I. 在排序数组中查找数字 I]

统计一个数字在排序数组中出现的次数。

示例 1:

输入: nums = [5,7,7,8,8,10], target = 8
输出: 2

示例 2:

输入: nums = [5,7,7,8,8,10], target = 6
输出: 0

限制:

0 <= 数组长度 <= 50000

方法1:使用multiset数据结构的count函数,直接计算某个数字在数据结构中的个数

class Solution {
public:
multiset<int>mySet; public:
int search(vector<int>& nums, int target) {
int size = nums.size();
for (int i = 0; i<size; i++) {
mySet.insert(nums[i]);
}
return mySet.count(target);
}
};

方法2:编译数组,一个个判断数组元素是否与目标数值相同,相同则加1

class Solution {
public:
int search(vector<int>& nums, int target) {
int size = nums.size();
int count = 0;
for (int i = 0; i<size; i++) {
if (target == nums[i]) {
count++;
}
}
return count;
}
};

方法3:直接使用计数函数

class Solution {
public:
int search(vector<int>& nums, int target) {
int count = count(nums.begin(), nums.end(), target);
return count;
}
}

方法4:既然数组是排好序的,那就可以使用二分查找算法


方法5:使用map,数组元素作为map的key,相同元素的个数作为data

class Solution {
public:
map<int, int>myMap; public:
int search(vector<int>& nums, int target) {
for (int i = 0; i<nums.size(); i++) {
myMap[nums[i]]++;
}
return myMap[target];
}
};

最新文章

  1. mac下安装mysql教程
  2. 前端面试-难点问题2-java和javascript的区别
  3. TweenMax参数说明
  4. PHP访问带密码的Redis
  5. MVC系列1-MVC基础 (ASP.NET)
  6. win7 32位安装php redis驱动
  7. HTML5 十大新特性(五)——SVG绘图
  8. BAT 快速删除CVS文件和拷贝最近修改文件的目录结构
  9. JS&amp;CSS文件请求合并及压缩处理研究(四)
  10. 浅谈Service
  11. 深入浅出:Linux设备驱动之字符设备驱
  12. 学会简单使用log4j
  13. 未找到与约束contractname Microsoft.VisualStudio.Utilities.IContentTypeRegistryService
  14. javascript 如何获取return回来的对象值
  15. LAMP一键安装包(Python版)
  16. 通过VS2010命令提示窗口创建强命名文件时报错问题
  17. js中窗口大小和单个元素大小的计算
  18. Button动态样式取代xml
  19. 工作中对数组的一些处理,整理(结合underscore.js)
  20. python 自动化之路

热门文章

  1. Python_爬虫养殖专业户_00
  2. PyQt(Python+Qt)学习随笔:QMainWindow的takeCentralWidget对QDockWidget作用案例图解
  3. 第11.23节 Python 中re模块的搜索替换功能:sub及subn函数
  4. sql绕过2
  5. CSP-S 2019 Solution
  6. 学习笔记:斜率优化DP
  7. hadoop_MapReduce_idea上打jar包,在虚拟机上运行
  8. windows宿主机访问ubuntu虚拟机中的docker服务
  9. js上 五、运算符-1
  10. react第五单元(事件系统-原生事件-react中的合成事件-详解事件的冒泡和捕获机制)