求教一道算法题,查询算法

eg,
1 3 4 5 6 8 9 15 14 13 12 10
其中1-15递增,14-10递减;
整个数组前半部分递增,后半部分递减;

查找特定值,有返回下标,无返回-1;

int find(int* p,int len,int val);
最快的方法;

全部评论
三分法
点赞 回复 分享
发布于 2017-09-25 23:05
先用三分法查最大值,分成2个单调序列后二分法,复杂度Ologn。 三分法自行百度。
点赞 回复 分享
发布于 2017-09-26 13:03
好剑指offer题好像
点赞 回复 分享
发布于 2017-09-26 12:51
用中间节点和中间节点的下一节点,判断中间节点是在升序部分,还是在降序部分。然后对每种情况进行正常的二分查找
点赞 回复 分享
发布于 2017-09-26 08:20
三分 +1
点赞 回复 分享
发布于 2017-09-26 00:37
关注一下,之前被问过这题,一直没找到更好的办法
点赞 回复 分享
发布于 2017-09-26 00:08
先二分查找这个数组中间那个最大值,再分前后两段二分就行了。
点赞 回复 分享
发布于 2017-09-25 22:08
二分变种吧
点赞 回复 分享
发布于 2017-09-25 22:06
先二分找到分界点在哪, 再在分界点两边二分找。
点赞 回复 分享
发布于 2017-09-25 22:06

相关推荐

不愿透露姓名的神秘牛友
07-04 18:02
好不容易拿到了字节Offer,鼠鼠做后端的,但家里人觉得可能被裁员不稳定,让鼠鼠去投国企,现在好纠结到底该咋选
文档传偷助手:该投就投吧,不过建议别放弃offer 拿到手里的才是最好的
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
找个工作 学历是要卡的 要求是高的 技能不足是真的 实习经验是0的 简历无处可写是事实的 钱不好赚是真的 想躺平又不敢躺 也不甘心躺 怕自己的灵感和才华被掩埋甚至从未被自己发现 又质疑自己是否真正有才华
码农索隆:你现在啊,你心里都明白咋回事,但是你没办法改变现状,一想到未来,你又没有信心狠下心来在当下努力。 得走出这种状态,不能一直困在那里面,哪不行就去提升哪,你一动不动那指定改变不了未来,动起来,积少成多才能越来越好
点赞 评论 收藏
分享
06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务