09 Sept 2026Go / Python / TypeScriptEasy

Element Appearing More Than 25% In Sorted Array

Find the value occurring in more than one quarter of a sorted array.

Count each contiguous run in the sorted array and return the first whose length exceeds one quarter of the array.

complexity

O(n) time and O(1) space.

solution files

  • Go element-appearing-more-than-25-in-sorted-array/solution.go
  • Python element-appearing-more-than-25-in-sorted-array/solution.py
  • TypeScript element-appearing-more-than-25-in-sorted-array/solution.ts

Solution files

Goelement-appearing-more-than-25-in-sorted-array/solution.go
package main

func findSpecialInteger(arr []int) int {
	run := 1
	for index := 1; index < len(arr); index++ {
		if arr[index] == arr[index-1] {
			run++
		} else {
			run = 1
		}
		if run*4 > len(arr) {
			return arr[index]
		}
	}
	return arr[0]
}
Pythonelement-appearing-more-than-25-in-sorted-array/solution.py
class Solution:
    def findSpecialInteger(self, arr: list[int]) -> int:
        run = class="syntax-number">1
        for index in range(class="syntax-number">1, len(arr)):
            run = run + class="syntax-number">1 if arr[index] == arr[index - class="syntax-number">1] else class="syntax-number">1
            if run * class="syntax-number">4 > len(arr): return arr[index]
        return arr[class="syntax-number">0]
TypeScriptelement-appearing-more-than-25-in-sorted-array/solution.ts
function findSpecialInteger(arr: number[]): number {
  let run = class="syntax-number">1;
  for (let index = class="syntax-number">1; index < arr.length; index += class="syntax-number">1) { run = arr[index] === arr[index - class="syntax-number">1] ? run + class="syntax-number">1 : class="syntax-number">1; if (run * class="syntax-number">4 > arr.length) return arr[index]; }
  return arr[class="syntax-number">0];
}