Go Dominator
func dominator(a []int) int {
	size, value, index := 0, 0, 0
	for k, v := range a {
		switch {
		case size == 0:
			size++
			value = v
			index = k
		case value != v:
			size--
		default:
			size++
		}
	}

	candidate := -1
	if size > 0 {
		candidate = value
	}

	count := 0
	for _, v := range a {
		if v == candidate {
			count++
		}
	}
	if count <= len(a)/2 {
		index = -1
	}

	return index
}

This finds a value that appears in more than half of the array, then returns one valid index for it.