- Find First and Last Position of Element in Sorted Array
Given an array of integers nums 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].
Example 1:
Input: nums = [5,7,7,8,8,10], target = 8
Output: [3,4]
Example 2:
Input: nums = [5,7,7,8,8,10], target = 6
Output: [-1,-1]
题目解析:
遍历数组找到目标值在数组中下标存到ArrayList中,将第一和最后一个值,作为返回值即可。
代码:
class Solution {
public int[] searchRange(int[] nums, int target) {
int []Result = new int[2];
int len = nums.length;
if(len == 0)
{
Result[0] = -1;
Result[1] = -1;
return Result;
}
ArrayList<Integer> indexs = new ArrayList<Integer>();
for(int i=0;i<len;i++)
{
if(nums[i] == target)
{
indexs.add(i);
}
}
int indexsLen = indexs.size();
if(indexsLen == 0)
{
Result[0] = -1;
Result[1] = -1;
return Result;
}
else
{
Result[0] = indexs.get(0);
Result[1] = indexs.get(indexsLen - 1);
return Result;
}
}
}
性能:
总结:
运行时间和内存如何完美兼顾,这是个Question,哈哈!