LeetCode热题100 在排序数组中查找元素的第一个和最后一个位置
题目描述给你一个按照非递减顺序排列的整数数组 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]提示0nums.length1050 nums.length 10^50nums.length105−109nums[i]109-10^9 nums[i] 10^9−109nums[i]109nums 是一个非递减数组−109target109-10^9 target 10^9−109target109思路直接调用upper_bound和lower_bound。代码classSolution{public:vectorintsearchRange(vectorintnums,inttarget){vectorint::iterator it1lower_bound(nums.begin(),nums.end(),target);vectorint::iterator it2upper_bound(nums.begin(),nums.end(),target);if(it1nums.end()||it1it2){return{-1,-1};}else{return{(int)(it1-nums.begin()),(int)(it2-nums.begin()-1)};}}};
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2431368.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!