[leetCode刷题笔记]2017.02.06
2017-02-07 12:26
344 查看
33. Search in Rotated Sorted Array
这道题其实就是考察二分法,虽然旋转了,但是大部分没变化。。。先找两个点,起始和终止点。然后如果中间点比起始点小,说明其中存在旋转点。要根据targer位置进行二分。。
public class Solution {
public int search(int[] nums, int target) {
if (nums == null || nums.length == 0) {
return -1;
}
int start = 0;
int end = nums.length - 1;
int mid;
while (start < end -1) {
mid = start + (end - start) / 2;
if (nums[mid] == target) {
return mid;
}
if (nums[start] < nums[mid]) {
if (nums[start] <= target && target <= nums[mid]) {
end = mid;
}
else {
start = mid;
}
}
else {
if (nums[mid] <= target && target <= nums[end]) {
start = mid;
} else {
end = mid;
}
}
}
if (nums[start] == target) {
return start;
}
if (nums[end] == target) {
return end;
}
return -1;
}
}
好困。。。就写到这。。。
这道题其实就是考察二分法,虽然旋转了,但是大部分没变化。。。先找两个点,起始和终止点。然后如果中间点比起始点小,说明其中存在旋转点。要根据targer位置进行二分。。
public class Solution {
public int search(int[] nums, int target) {
if (nums == null || nums.length == 0) {
return -1;
}
int start = 0;
int end = nums.length - 1;
int mid;
while (start < end -1) {
mid = start + (end - start) / 2;
if (nums[mid] == target) {
return mid;
}
if (nums[start] < nums[mid]) {
if (nums[start] <= target && target <= nums[mid]) {
end = mid;
}
else {
start = mid;
}
}
else {
if (nums[mid] <= target && target <= nums[end]) {
start = mid;
} else {
end = mid;
}
}
}
if (nums[start] == target) {
return start;
}
if (nums[end] == target) {
return end;
}
return -1;
}
}
好困。。。就写到这。。。
相关文章推荐
- LeetCode 笔记系列三 3Sum
- LeetCode题目笔记(一) -- Minimum Depth Of Binary Tree
- LeetCode 笔记系列13 Jump Game II [去掉不必要的计算]
- LeetCode 笔记系列 19 Scramble String [合理使用递归]
- 【LeetCode】Triangle做题笔记
- LeetCode 笔记系列 20 Interleaving String [动态规划的抽象]
- LeetCode 笔记系列 14 N-Queen II [思考的深度问题]
- LeetCode 笔记系列16.3 Minimum Window Substring [从O(N*M), O(NlogM)到O(N),人生就是一场不停的战斗]
- LeetCode 笔记系列 18 Maximal Rectangle [学以致用]
- LeetCode题目笔记(二) -- Maximum Depth of Binary Tree
- LeetCode 笔记系列六 Reverse Nodes in k-Group [学习如何逆转一个单链表]
- LeetCode 笔记系列十 Suduko
- LeetCode 笔记系列12 Trapping Rain Water [复杂的代码是错误的代码]
- LeetCode 笔记系列七 Substring with Concatenation of All Words
- LeetCode题目笔记(三) -- Median of Two Sorted Arrays
- LeetCode 笔记系列一 Median of Two Sorted Arrays
- LeetCode 笔记系列五 Generate Parentheses
- LeetCode 笔记系列15 Set Matrix Zeroes [稍微有一点hack]
- 【LeetCode】Reverse Integer解题笔记
- 【LeetCode】Valid Sudoku解题笔记