程序员面试金典——11.3元素查找
程序员面试金典——11.3元素查找
Solution1:我的答案
二分查找,貌似不咋好啊
class Finder {
public:int findElement(vector<int> A, int n, int x) { //二分法// write code here、if(n <= 0)return -1;int low = 0, high = n - 1;return BinarySearch(A, low, high, x);}int BinarySearch(vector<int> &A, int low, int high, int x) {int mid = (low + high)/2;if(low > high) //递归终止return 0;if(A[mid] == x) //答案return mid;else {return BinarySearch(A, low, mid - 1, x)+ BinarySearch(A, mid + 1, high, x);}}
};
Solution2:
加强版二分查找
参考网址:https://www.nowcoder.com/profile/1982673/codeBookDetail?submissionId=17308116
这个思路要学习一个啊
二分查找的加强版,主题思路还是二分,再加上一些限制条件
int findElement(vector<int> A, int n, int x) {int i=0,j=n-1,mid;//由于移位了,但移位之后,中间元素的左右两边必定有一边是升序的while(i<=j) {mid=(i+j)/2;if(A[mid]==x)return mid;if(A[mid]<x) {//A[mid]<A[left] 说明右边是有序的,且x>A[right]说明x在mid左边if(A[mid]<A[i]&&x>A[j]) j=mid-1;else i=mid+1;}else {//A[mid]>A[left]说明左边是有序的,且x<A[left],说明x在mid右边if(A[mid]>A[i]&&x<A[i]) i=mid+1;else j=mid-1;}}return -1;
}
程序员面试金典——11.3元素查找相关推荐
- 程序员面试金典——11.6矩阵元素查找
程序员面试金典--11.6矩阵元素查找 Solution1:我的答案.和剑指offer上的题目类似,复杂度是O(m+n)O(m+n)O(m+n). class Finder { public:vect ...
- 【动态规划】程序员面试金典——11.7叠罗汉I
程序员面试金典--11.7叠罗汉I 首先我来批判一下这个题目出的真是不咋滴,后来的人按理说应该在上面.但此题的意思是求最长递增子序列,即后来的人在下面,完全是为了出题而出题... 参考博客: [1]h ...
- 【To Do!】程序员面试金典——11.8维护x的秩
程序员面试金典--11.8维护x的秩 Solution1:我的答案.垃圾算法... class Rank { public:vector<int> getRankOfNumber(vect ...
- 程序员面试金典——11.5找出字符串
程序员面试金典--11.5找出字符串 Solution1:我的答案.加强版的二分查找,嘿嘿嘿 class Finder { public:int findString(vector<string ...
- 程序员面试金典——11.2变位词排序
程序员面试金典--11.2变位词排序 Solution1: 参考网址:https://www.nowcoder.com/profile/845063/codeBookDetail?submission ...
- 程序员面试金典——番外篇之下一个较大元素II
程序员面试金典--番外篇之下一个较大元素II Solution1:我的答案,时间复杂度为O(n2)O(n2)O(n^2) 垃圾算法 class NextElement { public:vector& ...
- 【程序员面试金典】面试题 10.11. 峰与谷
[程序员面试金典]面试题 10.11. 峰与谷 题目描述 解题思路 题目描述 描述:在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等 ...
- 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)
文章目录 1. 题目 2. 解题 2.1 超时解 2.2 二分查找 1. 题目 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一 ...
- 【To Do】程序员面试金典——18.11最大子方阵
程序员面试金典--18.11最大子方阵 Solution1:我的答案.最笨的方法,时间复杂度是O(n3)O(n3)O(n^3) class SubMatrix { public:int maxSubM ...
最新文章
- Lucene 的四大索引查询 ——bool 域搜索 通配符 范围搜索
- 2011年GALGAME不朽巨作推荐
- 蓝桥杯 历届试题 合根植物(并查集)
- java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
- macpro台式计算机,Mac Pro正式上架 真的可以用来刨土豆丝
- LeetCode 1152. 用户网站访问行为分析
- 图形化c语言编程,「分享」C语言如何编写图形界面
- 从BIO、NIO到Netty
- cad 打开硬件加速卡_老司机手把手带你解决,各种CAD疑难杂症
- Linux两种方式rd.break和init重置root管理员密码
- Visual Studio IDE下载地址
- MapReduce过程卡在reduce处的67%
- linux恢复表数据,Linux恢复误删的数据
- python 矩阵特征值分解_特征值分解和奇异值分解
- php怎么做地图源代码,php直播源码百度地图坐标拾取系统自定义页面
- LINUX中DNS服务器反向解析
- 对待事物,乐观积极。
- Python避免缩进错误
- 【杂记】火狐浏览器主页被2345恶意篡改解决方法
- .pnmrc和.vuerc和.yarnrc等等文件
热门文章
- Automatic Brain Tumor Segmentation using Cascaded Anisotropic Convolutional Neural Networks
- 多分类支持向量机及其Python实现
- 计算机桌面锁定了没设密码怎么解锁,电脑桌面锁屏怎么设置,电脑怎么给手机解锁...
- 动态新增表字段_国际法规 | 欧盟POPs法规更新新增三氯杀螨醇、修订PFOS的豁免——北测集团...
- python sendto(右键发送文件到执行的bat)功能的实现
- neo4j 查询同一节点的两个上级_手把手教你快速入门知识图谱 - Neo4J教程
- 黑莓 os6 html5,黑莓OS 6内置浏览器HTML5性能超越其他平台
- java多线程_Java多线程
- python map函数_Python map()函数
- python 技能清单_Python清单