class Solution {
public int search(int[] nums, int target) {
for (int i = 0; i < nums.length; i++) {
if (nums[i] == target) {
return i;
}
}
return -1;
}
}
Runtime: 0 ms, faster than 100.00% of Java online submissions for Search in Rotated Sorted Array.
Memory Usage: 38 MB, less than 97.97% of Java online submissions for Search in Rotated Sorted Array.
언제부터였을까요.. 이렇게 꿀 솔루션을 쓰면 양심이 찔리기 시작한게...ㅎ
class Solution {
public int search(int[] nums, int target) {
int s = 0;
int e = nums.length - 1;
while (s <= e) {
int m = s + (e - s) / 2;
if (nums[m] == target) return m;
else if (nums[s] <= nums[m]) {
if (nums[s] <= target && target < nums[m]) {
e = m - 1;
} else {
s = m + 1;
}
} else {
if (nums[e] >= target && target > nums[m]) {
s = m + 1;
} else {
e = m - 1;
}
}
}
return -1;
}
}
Runtime: 0 ms, faster than 100.00% of Java online submissions for Search in Rotated Sorted Array.
Memory Usage: 38.7 MB, less than 21.05% of Java online submissions for Search in Rotated Sorted Array.
이제 좀 알겠는 binary search 이용~
peak가 앞에 있는지 뒤에 있는지 찾은 후 값에 따라 조정.
루션이를 보니 저랑 똑같이 풀었어서 뿌듯했네요^^