zoukankan      html  css  js  c++  java
  • Leetcode34.Find First and Last Position of Element in Sorted Array在排序数组中查找元素的位置

    给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。

    你的算法时间复杂度必须是 O(log n) 级别。

    如果数组中不存在目标值,返回 [-1, -1]。

    示例 1:

    输入: nums = [5,7,7,8,8,10], target = 8 输出: [3,4]

    示例 2:

    输入: nums = [5,7,7,8,8,10], target = 6 输出: [-1,-1]

    class Solution {
    public:
        vector<int> searchRange(vector<int>& nums, int target)
        {
            int len = nums.size();
            vector<int> res;
            int low = 0;
            int high = len - 1;
            while(low <= high)
            {
                int mid = (low + high) / 2;
                if(nums[mid] == target)
                {
                    int start;
                    int end;
                    int i;
                    for(i = mid; i >= 0; i--)
                    {
                        if(nums[i] != target)
                            break;
                    }
                    start = ++i;
                    for(i = mid; i < len; i++)
                    {
                        if(nums[i] != target)
                            break;
                    }
                    end = --i;
                    res = {start, end};
                    return res;
                }
                else if(nums[mid] > target)
                {
                    high = mid - 1;
                }
                else
                {
                    low = low + 1;
                }
            }
            res = {-1, -1};
            return res;
        }
    };
  • 相关阅读:
    php array function
    scrum敏捷开发重点介绍
    PHP文件操作
    正则
    PHP面向对象
    PHP数组
    PHP函数参数
    PHP运算符优先级
    PHP判断变量类型和类型转换的三种方式
    PHP变量的传值和引用
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433880.html
Copyright © 2011-2022 走看看