[简单-剑指 Offer 53 - I. 在排序数组中查找数字 I]
2024-10-19 14:43:27
[简单-剑指 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];
}
};
最新文章
- mac下安装mysql教程
- 前端面试-难点问题2-java和javascript的区别
- TweenMax参数说明
- PHP访问带密码的Redis
- MVC系列1-MVC基础 (ASP.NET)
- win7 32位安装php redis驱动
- HTML5 十大新特性(五)——SVG绘图
- BAT 快速删除CVS文件和拷贝最近修改文件的目录结构
- JS&;CSS文件请求合并及压缩处理研究(四)
- 浅谈Service
- 深入浅出:Linux设备驱动之字符设备驱
- 学会简单使用log4j
- 未找到与约束contractname Microsoft.VisualStudio.Utilities.IContentTypeRegistryService
- javascript 如何获取return回来的对象值
- LAMP一键安装包(Python版)
- 通过VS2010命令提示窗口创建强命名文件时报错问题
- js中窗口大小和单个元素大小的计算
- Button动态样式取代xml
- 工作中对数组的一些处理,整理(结合underscore.js)
- python 自动化之路
热门文章
- Python_爬虫养殖专业户_00
- PyQt(Python+Qt)学习随笔:QMainWindow的takeCentralWidget对QDockWidget作用案例图解
- 第11.23节 Python 中re模块的搜索替换功能:sub及subn函数
- sql绕过2
- CSP-S 2019 Solution
- 学习笔记:斜率优化DP
- hadoop_MapReduce_idea上打jar包,在虚拟机上运行
- windows宿主机访问ubuntu虚拟机中的docker服务
- js上 五、运算符-1
- react第五单元(事件系统-原生事件-react中的合成事件-详解事件的冒泡和捕获机制)