元素最左出现练习
来源:互联网 发布:手机网络连接超时 编辑:程序博客网 时间:2024/05/17 23:23
对于一个有序数组arr,再给定一个整数num,请在arr中找到num这个数出现的最左边的位置。
给定一个数组arr及它的大小n,同时给定num。请返回所求位置。若该元素在数组中未出现,请返回-1。
测试样例:
[1,2,3,3,4],5,3
返回:2
二分查找,中间值等于num之后,保存,并继续向左二分查找。直到最后。
使用迭代的方法实现。
class LeftMostAppearance {public: int findPos(vector<int> arr, int n, int num) { if(arr.empty()) return -1; int begin=0; int end=arr.size()-1; int res=-1; return binarysearch(arr,begin,end,num,res); } int binarysearch(vector<int> arr,int &begin,int &end,int num,int &res) { int mid=begin+(end-begin)/2; if(end-begin==0) { if(arr[begin]==num) res=begin; return res; } if (end-begin==1) { if(arr[begin]==num) res=begin; else if(arr[end]==num) res=end; return res; } if(arr[mid]==num){ res=mid; end=mid; } else if(arr[mid]<num) begin=mid; else end=mid; return binarysearch(arr,begin,end,num,res); }};
0 0
- 元素最左出现练习
- 元素最左出现
- 局部最小值位置、元素最左出现、循环有序数组最小值
- 数组中最出现一次的元素
- js中如何获取某个元素到浏览器最左和最右的距离
- 最左前缀原则
- 最左原位
- 最左原位
- 最左原位
- 数组元素循环左移
- 左侧线 延伸到最左边
- MySql最左前缀原则
- 二分搜索最左位置
- MySql最左前缀原则
- MySql最左前缀原则
- 最左前缀 联合索引
- 宝典练习1之在排序数组中找指定元素出现次数
- 最左推导与最右推导
- 实现一个3D图片轮播插件 —— 更新版
- 层次聚类算法(二)
- cordova—— 监听手机软键盘出现和隐藏事件及获取软键盘的高度
- Leetcode题解
- 如何解决Android studio用HttpPost或者HttpGet从php获取信息在机子上显示乱码
- 元素最左出现练习
- 一个自己用的opencv历程
- 【解题报告】Codeforces Round #401 (Div. 2)
- C++指针函数与函数指针
- Rainbow实现代码高亮使用教程
- 去掉百度地图经度圈
- linux内核移植-DM9000C移植笔记
- Android Studio设置自定义字体
- 数据库事务的四大特性以及事务的隔离级别