Bird
Raised Fist0
DSA Typescriptprogramming~5 mins

Find Peak Element Using Binary Search in DSA Typescript - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a peak element in an array?
A peak element is an element that is greater than its neighbors. For the first or last element, only one neighbor is considered.
Click to reveal answer
intermediate
Why is binary search useful for finding a peak element?
Binary search helps find a peak element in O(log n) time by comparing middle elements with neighbors and deciding which half to search next.
Click to reveal answer
beginner
In the binary search for a peak element, if the middle element is less than its right neighbor, which side do we search next?
We search the right half because a peak must exist there since the right neighbor is greater.
Click to reveal answer
beginner
What is the time complexity of finding a peak element using binary search?
The time complexity is O(log n) because the search space is halved in each step.
Click to reveal answer
beginner
Show the TypeScript function signature for finding a peak element using binary search.
function findPeakElement(nums: number[]): number
Click to reveal answer
What is a peak element in an array?
AAn element greater than its neighbors
BThe smallest element in the array
CThe first element of the array
DAn element equal to its neighbors
If nums[mid] < nums[mid + 1], which half should we search next to find a peak?
ARight half
BNeither half
CBoth halves
DLeft half
What is the time complexity of the binary search approach to find a peak element?
AO(n)
BO(log n)
CO(n log n)
DO(1)
Which of these is a valid base case for the peak element search?
AArray length is infinite
BArray length is zero
CArray length is negative
DArray length is one
What does the function findPeakElement return?
AThe peak element value
BThe number of peak elements
CThe index of a peak element
DThe sum of peak elements
Explain how binary search is used to find a peak element in an array.
Think about how the array is divided and how the peak is guaranteed in one half.
You got /4 concepts.
    Describe the conditions that determine if the middle element is a peak or which side to search next.
    Focus on comparisons between middle element and its neighbors.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is a peak element in an array when using binary search to find it?
      easy
      A. An element that is greater than its neighbors
      B. The smallest element in the array
      C. The first element of the array
      D. An element equal to its neighbors

      Solution

      1. Step 1: Understand the definition of a peak element

        A peak element is one that is strictly greater than its neighbors on both sides (or just one side if at the boundary).
      2. Step 2: Apply this to binary search context

        Binary search finds such an element by comparing mid element with neighbors to decide which half to search next.
      3. Final Answer:

        An element that is greater than its neighbors -> Option A
      4. Quick Check:

        Peak element = greater than neighbors [OK]
      Hint: Peak element is bigger than neighbors, not smallest [OK]
      Common Mistakes:
      • Thinking peak is smallest element
      • Confusing peak with first or last element always
      • Assuming peak equals neighbors
      2. Which of the following is the correct TypeScript syntax to start a binary search loop for finding a peak element in array nums?
      easy
      A. while(left < right) { ... }
      B. if(nums[mid] > nums[mid+1]) { ... }
      C. for(let i = 0; i < nums.length; i++)
      D. switch(nums[mid]) { ... }

      Solution

      1. Step 1: Identify the loop type for binary search

        Binary search uses a while loop with condition left < right to narrow down the search range.
      2. Step 2: Check options for correct binary search syntax

        while(left < right) { ... } shows the correct while loop structure for binary search.
      3. Final Answer:

        while(left < right) { ... } -> Option A
      4. Quick Check:

        Binary search uses while loop [OK]
      Hint: Binary search uses while(left < right) loop [OK]
      Common Mistakes:
      • Using for loop instead of while
      • Using if instead of loop for search
      • Using switch incorrectly for binary search
      3. What will be the output index of a peak element for the array nums = [1, 3, 20, 4, 1, 0] using binary search peak finding?
      medium
      A. 3
      B. 1
      C. 2
      D. 0

      Solution

      1. Step 1: Identify peak elements in the array

        Check neighbors: 20 at index 2 is greater than 3 and 4, so it's a peak.
      2. Step 2: Binary search will find index 2 as peak

        Binary search compares mid with neighbors and narrows to index 2.
      3. Final Answer:

        2 -> Option C
      4. Quick Check:

        Peak at index 2 = 20 [OK]
      Hint: Peak is local max, here 20 at index 2 [OK]
      Common Mistakes:
      • Choosing first or last element incorrectly
      • Confusing peak with global max always
      • Ignoring neighbors in peak definition
      4. Given this TypeScript code snippet to find a peak element, what is the bug?
      let left = 0;
      let right = nums.length - 1;
      while (left < right) {
        let mid = Math.floor((left + right) / 2);
        if (nums[mid] < nums[mid + 1]) {
          left = mid + 1;
        } else {
          right = mid - 1;
        }
      }
      return left;
      medium
      A. Return should be right instead of left
      B. The loop condition should be while(left <= right)
      C. The mid calculation is incorrect
      D. The else branch should set right = mid, not mid - 1

      Solution

      1. Step 1: Analyze the else branch update of right pointer

        Setting right = mid - 1 skips the mid element, possibly missing peak.
      2. Step 2: Correct approach is right = mid to keep mid in range

        To ensure peak is not skipped, right should be set to mid, not mid - 1.
      3. Final Answer:

        The else branch should set right = mid, not mid - 1 -> Option D
      4. Quick Check:

        Keep mid in range by right = mid [OK]
      Hint: Use right = mid to avoid skipping mid element [OK]
      Common Mistakes:
      • Setting right = mid - 1 causing missed peaks
      • Changing loop condition unnecessarily
      • Miscomputing mid index
      5. You have an array nums = [10, 20, 15, 2, 23, 90, 67]. Using binary search to find a peak element, which index could be returned as a valid peak?
      hard
      A. 2
      B. 5
      C. 6
      D. 3

      Solution

      1. Step 1: Identify all peak elements in the array

        Peaks are elements greater than neighbors: 20 at index 1 and 90 at index 5.
      2. Step 2: Binary search can return any peak; index 5 (value 90) is a valid peak

        90 is greater than 23 and 67, so index 5 is a valid peak.
      3. Final Answer:

        5 -> Option B
      4. Quick Check:

        90 at index 5 is peak [OK]
      Hint: Binary search may return any peak, here index 5 is valid [OK]
      Common Mistakes:
      • Assuming only one peak exists
      • Choosing non-peak elements
      • Ignoring neighbors when checking peak
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard