LeetCode 34 Search for a Range
来源:互联网 发布:网关是什么知乎 编辑:程序博客网 时间:2024/06/08 10:40
Search for a Range
Given 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]
.
解题思路:有了上一题的启发,这一题的解决办法是利用二分法处理,利用无递归的二分法算法实现题目要求的O(log n)的要求,然后利用前后遍历实现找到范围所在。但也要考虑到,当重复项过多,该算法会退化到O(n)的复杂度。
代码如下:
public int[] searchRange(int[] nums, int target) { int len = nums.length; int l =0; int r = len - 1; int mid =(l+r)/2; int i=0,j=0; int []re = {-1,-1}; while(l<=r){ if(target<nums[l]||target>nums[r]) return re; if(nums[mid]==target){ i = mid; j = mid; if(mid>0){ int t = i; while(nums[--t]==target){ i=t; if(i>0){ continue; }else{ break; } } } if(mid<len-1){ int g =j; while(nums[++g]==target){ j =g; if(j<len-1){ continue; }else{ break; } } } int []re1 = {i,j}; return re1; }else if(nums[mid]<target){ l = mid+1; }else{ r =mid-1; } mid =(l+r)/2; } return re; }
0 0
- LeetCode(34)Search for a Range
- [LeetCode] Search for a Range [34]
- LeetCode 34 Search for a Range
- [leetcode 34] Search for a Range
- Leetcode NO.34 Search for a Range
- [LeetCode 34]Search for a Range
- leetcode-34 Search for a Range
- Leetcode 34 Search for a Range
- Search for a Range - LeetCode 34
- leetcode 34 -- Search for a Range
- leetcode 34: Search for a Range
- Leetcode#34 Search for a Range
- LeetCode(34) Search for a Range
- LeetCode 34: Search for a Range
- [Leetcode 34, Medium] Search for a Range
- [leetcode-34]Search for a Range(C)
- Leetcode#34||Search for a Range
- LeetCode(34)Search for a Range
- Java内存管理原理及内存区域详解
- 栈增长方向与大端/小端问题
- hdu1045二分匹配(难在建图)
- myeclipse中发送邮件出现Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInp
- HTML里面Textarea换行总结
- LeetCode 34 Search for a Range
- Win10系统问题解决——关键错误开始菜单和cortana无法工作
- PC ubuntu 上编译qt 并开发树莓派上的桌面应用
- 为栈实现高效的max操作
- js 删除 textarea换行符
- Oracle日期函数months_between的用法
- 手机连接不上eclipse和Android studio
- JQuery获取input type="text"中的值的各种方式
- Objective-C入门03:类和对象