/** * @author lautturi.com * Java example: java siblings search */ import java.util.*; import java.util.stream.IntStream; public class Lautturi { public static int[] getSiblings(int[] arr, int x) { int pos = 0; for (int i = 0; i < arr.length; i++) { if (arr[i] == x) pos = i + 1; } int start = Integer.highestOneBit(pos); int end = start * 2 - 1 >= arr.length ? arr.length : start * 2 - 1; return IntStream.range(start - 1, end).map(i -> arr[i]).filter(v -> v != x).toArray(); } public static void main(String[] args) { int[] numbers = { 11, 4, 2, 7, 55, 16, 12, 8, 13, 38 }; int[] arrSibling = getSiblings(numbers, 16); System.out.println(Arrays.toString(arrSibling)); } }
output:
[7, 55, 12]