zoukankan      html  css  js  c++  java
  • [leetcode-34-Search for a Range]

    Given an array of integers sorted in ascending order, find the starting and ending position of a given target value.
    Your algorithm's runtime complexity must be in the order of O(log n).
    If the target is not found in the array, return [-1, -1].
    For example,
    Given [5, 7, 7, 8, 8, 10] and target value 8,
    return [3, 4].

    思路:

    二分查找。。写的好啰嗦。待优化。

    vector<int> searchRange(vector<int>& nums, int target)
         {
             int len = nums.size(),low=0,high = len-1,mid = low +(high-low)/2;
             vector<int>ret;
             while (low <= high)
             {
                 mid = low + (high - low) / 2;
                 if (nums[mid] == target)
                 {
                     while (mid>=0 && nums[mid] == target)
                     {
                         mid--;
                     }
                     ret.push_back(mid + 1);
                     mid++;
                     while (mid<len && nums[mid] == target)
                     {
                         mid++;
                     }
                     ret.push_back(mid - 1);
                     break;
                 }
                 else if (nums[mid]<target)
                 {
                     low = mid + 1;
                 }
                 else high = mid - 1;
             }
             if (ret.size()==0)
             {
                 ret.push_back(-1), ret.push_back(-1);
             }
             return ret;
         }
  • 相关阅读:
    JSP 学习笔记1
    XML scriptlet 连接数据库
    JSP 定义行列数表单创建表格
    JSP_01
    JS创建表格完整
    04-基本的mysql语句
    03-MySql安装和基本管理
    02-数据库概述
    01-MySql的前戏
    爬虫系列
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/6941477.html
Copyright © 2011-2022 走看看