• [Leetcode]在排序数组中查找元素的第一个和最后一个位置


    题目

     

    代码

    class Solution {
    public:
        vector<int> searchRange(vector<int>& nums, int target) {
            int begin=0,end=nums.size()-1;
            int mid;
            bool findTarget=false;
            while(begin<=end)
            {
                mid=(begin+end)/2;
                if(nums[mid]==target)
                {
                    findTarget=true;
                    break;
                }
                else if(nums[mid]<target)
                    begin=mid+1;
                else 
                    end=mid-1;
                    
            }
            std::cout<<mid;
            vector<int> result;
            if(findTarget)
            {
                for(int i=mid;i>=0;i--)
                    if(i==0)
                    {
                        result.push_back(0);
                        break;
                    }
                        
                    else if(nums[i]!=nums[i-1])
                    {
                        result.push_back(i);
                        break;
                    }
                for(int i=mid;i<nums.size();i++)
                {
                    if(i==nums.size()-1)
                    {
                        result.push_back(i);
                        break;
                    }else if(nums[i]!=nums[i+1])
                    {
                        result.push_back(i);
                        break;
                    }
                        
                }
            }
            else{
                result.push_back(-1);
                result.push_back(-1);
            }
            return result;
        }
    };

    思路

    现用二分法找到其中一个目标值,然后再往左右寻找端点,比如 455556,目标值5,端点就是第一个5和最后一个5,返回即可

    https://github.com/li-zheng-hao
  • 相关阅读:
    yum---Linux软件安装与管理
    Python Cheetah01
    Python 改变字体颜色
    DenyHosts安装及配置
    Python 文件I/O
    Python 列表(List)
    Python 字符串
    Python 循环语句
    Python 条件语句
    Python 系统性能信息模块psutil
  • 原文地址:https://www.cnblogs.com/lizhenghao126/p/11053594.html
Copyright © 2020-2023  润新知