Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置 【数组 二分查
闲聊
1226 人阅读
|
0 人回复
|
<
Leetcode 34. 正在排序数组中查找元素的第一个战最初一个地位
给定一个根据降序排列的整数数组 nums,战一个目的值 target。找出给定目的值正在数组中的开端地位战结束地位。
假如数组中没有存正在目的值 target,返回 [-1, -1]。
进阶:
您能够设想并完成工夫庞大度为 O(log n) 的算法处理此成绩吗?
示例 1:
- 输进:nums = [5,7,7,8,8,10], target = 8
- 输出:[3,4]
复造代码 示例 2:
- 输进:nums = [5,7,7,8,8,10], target = 6
- 输出:[-1,-1]
复造代码 示例 3:
- 输进:nums = [], target = 0
- 输出:[-1,-1]
复造代码 提醒:
<ul>
0 1); if(target > nums[mid]) { //target正在mid值右边,减少左半区间 left = mid + 1; } else if (target < nums[mid]) { right = mid - 1; } else { // target == nums[mid] // 减少左半区间,正在左半区间担当寻觅能否存正在target right = mid - 1; } } if(left == nums.size() || nums[left] != target) return -1; return left; } int getrightposition(vector& nums, int target) { int left = 0, right = nums.size() - 1; while(left > 1); if(target < nums[mid]) { right = mid - 1; } else if (target == nums[mid]) { // 往右侧区间担当找是否是最初一个target left = mid + 1; } else { // target > nums[mid] left = mid + 1; } } if(right == - 1 || nums[right] != target) { return -1; } return right; } };[/code] 工夫庞大度:O (log n)
空间庞大度: O (1)
免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作! |
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请发帖留言提供原创证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
|
|
|
|
|