31 leetcode - Search for a Range
来源:互联网 发布:mac和投影仪无线连接 编辑:程序博客网 时间:2024/04/28 12:20
#!/usr/bin/python# -*- coding: utf-8 -*-'''Search for a RangeGiven a sorted array of integers, 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].'''class Solution(object): def searchRange(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ length = len(nums) if length == 0: return [-1,-1] left,right = 0,length - 1 index = 0 while left <= right: index = (left + right)>>1 val = nums[index] if val == target: if index > 0 and nums[index - 1] == target: right = index - 1 else: break elif val > target: right = index - 1 else: left = index + 1 if nums[index] != target: return [-1,-1] if index == length - 1 or nums[index + 1] != target: return [index,index] ret = index left,right = index + 1,length - 1 index = index + 1 while left <= right: index = (left + right)>>1 val = nums[index] if val == target: if (index + 1) < length and nums[index + 1] == target: left = index + 1 else: break elif val > target: right = index - 1 else: left = index + 1 if nums[index] != target: index = ret return [ret,index]if __name__ == "__main__": s = Solution() print s.searchRange([5, 7, 7, 8, 8, 10],8)
0 0
- 31 leetcode - Search for a Range
- LeetCode: Search for a Range
- LeetCode Search for a Range
- [Leetcode] Search for a Range
- LeetCode : Search for a Range
- [LeetCode] Search for a Range
- [Leetcode] Search for a Range
- Leetcode Search for a Range
- [LeetCode]Search for a Range
- LeetCode-Search for a Range
- [leetcode] Search for a Range
- LeetCode - Search for a Range
- Search for a Range leetcode
- LeetCode | Search for a Range
- LeetCode - Search for a Range
- LeetCode: Search for a Range
- leetcode: Search for a Range
- 【leetcode】Search for a Range
- h5学习之4(html中颜色的几种写法和书写规范简述)
- linux计划任务
- JAVA坦克大战
- python转码问题: in position 30664-30665: illegal multibyte sequence
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- 31 leetcode - Search for a Range
- Java并发基础知识
- Hadoop中的压缩(1) 概述与实例
- MAC 显示桌面文件
- 【反射】JAVA反射机制
- JDBC连接数据库
- MAC显示隐藏文件
- java多线程
- 【PHP】五分钟教你编写一个实时弹幕网站