Search in Rotated Sorted Array II - Array - Medium - LeetCode
💻 coding

Search in Rotated Sorted Array II - Array - Medium - LeetCode

1 min read 210 words
1 min read
ShareWhatsAppPost on X
  • 1The problem involves searching for a target in a rotated sorted array that may contain duplicates.
  • 2The solution uses a modified binary search algorithm to efficiently find the target value.
  • 3The time complexity is O(log n) and the space complexity is O(1).

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The problem involves searching for a target in a rotated sorted array that may contain duplicates."

Search in Rotated Sorted Array II - Array - Medium - LeetCode

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.

(i.e., [0,0,1,2,2,5,6] might become [2,5,6,0,0,1,2]).

You are given a target value to search. If found in the array return true, otherwise return false.

Example 1:

Input: nums = [2,5,6,0,0,1,2], target = 0 Output: true Example 2:

Input: nums = [2,5,6,0,0,1,2], target = 3 Output: false Follow up:

This is a follow up problem to Search in Rotated Sorted Array, where nums may contain duplicates. Would this affect the run-time complexity? How and why?

public class Solution {
 public bool Search(int[] nums, int target) {
 
 var left = 0;
 var right = nums.Length-1;
 var mid = -1;
 
 while(left<=right)
 {
 mid = left + (right-left)/2;
 if(nums[mid] == target){ 
 return true;
 }

 // the only difference from the first one, trickly case, just updat left and right
 if( (nums[left] == nums[mid]) && (nums[right] == nums[mid]) ) 
 {
 ++left; 
 --right;
 }
 else if(nums[left] <= nums[mid])
 {
 if( (nums[left]<=target) && (nums[mid] > target) ){ 
 right = mid-1;
 }
 else {
 left = mid + 1;
 } 
 }
 else
 {
 if((nums[mid] < target) && (nums[right] >= target) ){ 
 left = mid+1;
 }
 else {
 right = mid-1;
 }
 }
 }
 return false;
 }
}

Time Complexity: O(logn)

Space Complexity: O(1)

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

sumitc91

Published on 10 November 2020 · 1 min read · 210 words

Part of AskGif Blog · coding

You might also like