Problem Statement
There is a street. There are N houses along the street. The houses are numbered from 0 to N-1, in order.
Your friend Bob lives in one of these houses. You want to find him.
You already stopped at some (possibly zero) of the houses and asked "Does Bob live here?" Each time the answer you received was "You are X houses away from Bob's house." for some X.
The answers you received are given in the
Return a
The return value must be sorted in ascending order (i.e., smaller numbers go first).
Definition
- Class:
- FindBob
- Method:
- find
- Parameters:
- int, int[]
- Returns:
- int[]
- Method signature:
- int[] find(int N, int[] houses)
- (be sure your method is public)
Constraints
- N will be between 1 and 50, inclusive.
- houses will have exactly N elements.
- Each element of houses will be between -1 and N-1, inclusive.
Examples
6
{-1, -1, -1, -1, -1, -1}
Returns: {0, 1, 2, 3, 4, 5 }
You haven't been to any of the houses yet. Bob can live anywhere on this street.
6
{-1, -1, -1, 2, -1, -1}
Returns: {1, 5 }
You went to house #3 and you learned that Bob lives two houses away. This leaves us with just two options: house #1 or house #5. Recall that the return value must be sorted in ascended order. Returning {5, 1} is incorrect.
6
{1, -1, -1, 2, -1, -1}
Returns: {1 }
In this scenario you also went to house #0. The two pieces of information you have together tell you that Bob must live in house #1.
6
{-1, -1, -1, -1, 3, -1}
Returns: {1 }
Even though you only went to one house, the information they gave you already revealed the exact location of Bob's house. (The street has no house #7. House #1 is the only house that is 3 houses away from house #4.)
6
{-1, -1, -1, -1, 0, -1}
Returns: {4 }
Here you got lucky and found Bob immediately.
6
{5, -1, -1, -1, -1, 5}
Returns: { }
You visited the houses at both ends of the street. In each of them the owner claimed that Bob lives on the other end of the street. They cannot both be correct. As the information you got is contradictory, there correct output is empty: there is no house that would be consistent with all the distances you were told.
1
{-1}
Returns: {0 }
1
{0}
Returns: {0 }
7
{-1, -1, -1, -1, 3, -1, -1}
Returns: {1 }
9
{6, -1, -1, -1, 5, -1, 8, -1, -1}
Returns: { }
8
{7, 0, -1, -1, 0, -1, -1, -1}
Returns: { }
7
{-1, 3, 4, -1, 1, -1, -1}
Returns: { }
9
{-1, -1, -1, -1, -1, -1, -1, -1, 0}
Returns: {8 }
7
{-1, -1, 4, -1, 4, -1, -1}
Returns: { }
5
{-1, 0, -1, -1, -1}
Returns: {1 }
7
{-1, -1, -1, -1, 2, -1, -1}
Returns: {2, 6 }
8
{-1, 4, -1, -1, -1, 3, -1, 3}
Returns: { }
3
{-1, 2, -1}
Returns: { }
5
{-1, -1, 2, 0, 4}
Returns: { }
6
{-1, -1, 3, -1, 1, -1}
Returns: {5 }
3
{-1, 1, 2}
Returns: {0 }
4
{0, 0, -1, -1}
Returns: { }
6
{2, -1, -1, 3, 4, -1}
Returns: { }
6
{-1, -1, -1, 5, 4, 5}
Returns: { }
7
{-1, 4, -1, -1, -1, -1, -1}
Returns: {5 }
5
{-1, 3, -1, 1, -1}
Returns: {4 }
5
{-1, 0, -1, -1, -1}
Returns: {1 }
7
{3, -1, -1, 2, -1, 0, -1}
Returns: { }
3
{-1, 0, -1}
Returns: {1 }
2
{-1, 0}
Returns: {1 }
5
{-1, -1, -1, 4, 4}
Returns: { }
2
{0, -1}
Returns: {0 }
10
{3, -1, -1, -1, -1, -1, -1, -1, -1, 0}
Returns: { }
8
{-1, 0, -1, -1, -1, -1, -1, -1}
Returns: {1 }
6
{-1, -1, 4, -1, -1, -1}
Returns: { }
5
{-1, 4, -1, -1, 2}
Returns: { }
3
{2, 0, -1}
Returns: { }
8
{-1, 2, -1, -1, -1, -1, -1, 4}
Returns: {3 }
10
{-1, -1, -1, -1, -1, -1, -1, 0, -1, -1}
Returns: {7 }
2
{-1, 1}
Returns: {0 }
10
{-1, -1, -1, -1, -1, 2, -1, -1, -1, -1}
Returns: {3, 7 }
7
{3, -1, -1, -1, -1, -1, -1}
Returns: {3 }
3
{-1, 0, 1}
Returns: {1 }
10
{-1, -1, -1, 3, 4, -1, -1, -1, 8, -1}
Returns: {0 }
2
{1, 0}
Returns: {1 }
3
{-1, 1, 0}
Returns: {2 }
10
{-1, -1, -1, -1, 1, -1, 1, -1, -1, 4}
Returns: {5 }
5
{0, -1, 2, -1, 4}
Returns: {0 }
8
{-1, 4, -1, -1, -1, -1, -1, -1}
Returns: {5 }
8
{0, -1, -1, -1, -1, 5, -1, -1}
Returns: {0 }
8
{-1, -1, -1, 1, 0, -1, -1, -1}
Returns: {4 }
5
{-1, -1, -1, 1, -1}
Returns: {2, 4 }
7
{-1, 1, -1, 3, 4, -1, -1}
Returns: {0 }
2
{-1, 0}
Returns: {1 }
10
{-1, -1, -1, -1, 5, -1, -1, -1, -1, -1}
Returns: {9 }
3
{0, 1, -1}
Returns: {0 }
7
{-1, 2, -1, -1, 1, -1, -1}
Returns: {3 }
10
{5, -1, -1, -1, -1, -1, -1, -1, 3, -1}
Returns: {5 }
8
{7, -1, 5, -1, -1, -1, 1, -1}
Returns: {7 }
4
{1, -1, -1, 2}
Returns: {1 }
2
{1, -1}
Returns: {1 }
8
{-1, 1, -1, -1, -1, -1, -1, -1}
Returns: {0, 2 }
10
{-1, -1, -1, -1, -1, -1, 6, 7, -1, -1}
Returns: {0 }
9
{-1, 4, -1, -1, -1, -1, 1, -1, 3}
Returns: {5 }
3
{-1, 0, -1}
Returns: {1 }
10
{-1, -1, 7, -1, -1, -1, -1, -1, -1, -1}
Returns: {9 }
9
{-1, 6, -1, -1, -1, -1, 1, -1, -1}
Returns: {7 }
10
{-1, -1, -1, 2, -1, 0, 1, -1, -1, -1}
Returns: {5 }
46
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37}
Returns: {8 }
47
{-1, -1, -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1}
Returns: {41 }
47
{-1, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {22 }
46
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, 33, -1, -1, 36, -1, -1, -1, -1}
Returns: {5 }
48
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, -1, -1, -1, -1, -1, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {45 }
41
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, 12, -1, -1, 15, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {3 }
49
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {0 }
50
{-1, -1, -1, -1, 19, -1, 17, -1, -1, -1, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {23 }
41
{-1, -1, -1, -1, -1, 6, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {11 }
48
{-1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {46 }
41
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {37 }
41
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, -1, -1, -1, -1, 22}
Returns: {18 }
41
{-1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, -1, -1}
Returns: {6 }
42
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {5 }
48
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, -1, -1, -1, -1, 16, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1}
Returns: {43 }
47
{-1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3}
Returns: {43 }
43
{-1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, -1}
Returns: {3 }
47
{-1, -1, -1, 4, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {7 }
42
{-1, -1, -1, -1, -1, -1, -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {30 }
43
{-1, 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {40 }
47
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, -1}
Returns: {9 }
41
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {0, 38 }
40
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, 13, -1, -1, 16, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, -1}
Returns: {0 }
45
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1}
Returns: {8 }
40
{-1, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {38 }
46
{-1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {22 }
47
{-1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {17 }
40
{-1, -1, -1, -1, -1, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, -1, -1, 14, -1, -1, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, -1}
Returns: {12 }
45
{-1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, -1, 12, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {40 }
44
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
Returns: {10, 16 }
50
{13, 26, 29, 49, 11, 17, -1, 6, 37, 35, -1, 15, 33, 12, 33, 22, 29, 12, 20, 24, 1, 42, 40, 36, 25, 19, 33, 21, -1, 5, 0, 18, 49, 2, 37, 12, 32, 38, -1, 1, 34, 36, 2, 23, 47, 28, 11, 4, 16, 42}
Returns: { }
50
{39, 24, 31, 21, 1, 3, 18, 37, 44, 18, 2, 38, 27, 28, 25, 45, 45, 20, 45, 4, 15, 25, 22, 5, 44, 23, 23, 10, 17, 0, 0, 35, 42, 35, 11, 7, 34, 13, 4, -1, 26, 26, 25, 44, 26, 36, 45, 7, 8, 48}
Returns: { }
50
{45, 46, 46, 23, 33, 40, 28, 15, 39, 40, 8, 3, 1, 36, 14, 45, 36, 7, 3, 0, 7, 6, 32, 48, 7, 38, 17, 35, 37, 25, 34, 46, 30, 38, 36, 0, 9, 49, 37, 33, 36, 39, 45, 8, 13, 6, 8, 17, 38, 29}
Returns: { }
50
{40, 30, 28, 37, 18, 25, 47, 27, 37, 10, -1, 26, 49, 30, 30, 45, 25, 20, 22, 34, 18, 18, 24, 23, 1, 38, 47, 32, 16, 8, 28, 24, 5, 48, 41, 5, 36, 1, 22, 39, 20, 41, 42, 35, 47, 8, -1, 15, 21, 9}
Returns: { }
50
{38, 1, 25, 29, 44, 19, 8, 16, 15, 20, 25, 41, 6, 12, 41, 10, 38, 13, 17, 41, 14, 28, 43, 48, 32, 20, 8, 32, 22, 6, 8, 10, 35, 13, 33, 35, 49, 32, 48, 19, 39, 49, 39, 33, 12, 49, 39, 14, 1, 22}
Returns: { }
50
{23, 47, 10, 30, 37, 45, 45, 9, 11, 24, 45, 41, 2, 29, 19, 34, 33, 3, 15, 5, 7, 41, 31, 46, 36, 41, 12, 16, 37, 23, 6, 15, 34, 21, 6, 23, 22, 40, 33, 13, 17, 15, 37, 42, 43, 40, 19, 35, 1, 47}
Returns: { }
50
{38, 12, 17, 27, 48, 19, 47, 6, 8, 36, 10, 15, 20, 16, 5, 17, 12, 1, 47, 16, 38, 40, 12, 11, 42, 30, 30, 3, 23, 40, 0, 40, 48, 36, 8, 5, 25, 18, 13, 25, 47, 11, 4, 12, 40, 39, 41, 13, 34, 4}
Returns: { }
50
{34, 25, 18, 19, 22, 6, 4, 43, 19, 28, 12, 48, 6, 40, 4, 33, 41, 20, 47, 35, 43, 29, 49, 13, 2, 19, 18, 49, 45, 46, 41, 49, 23, 15, 48, 36, 2, 3, 15, 28, 31, 13, 31, 31, 30, 17, 19, 26, 32, 14}
Returns: { }
50
{38, 42, 43, 40, 20, 35, 39, 12, 35, 10, 11, 14, 47, 1, 0, 43, 37, 31, 37, 15, 46, 37, 17, 11, 20, 36, 37, 39, 34, 20, 31, 10, 46, 48, 19, 22, 10, 9, 41, 45, 30, 3, 1, 24, 28, 43, 27, 17, 38, 5}
Returns: { }
50
{49, 39, 43, 30, 39, 16, 20, 17, 43, 12, 43, 26, 3, 15, 38, 23, 19, 28, 17, 9, 14, 10, 22, 13, 18, 1, 12, 43, 35, 29, 0, 21, -1, 39, 17, 16, 34, 25, 47, 32, 14, 28, 28, 2, 4, 45, 7, 45, 24, 27}
Returns: { }
6
{-1, -1, 0, -1, 0, -1}
Returns: { }
7
{-1, 1, -1, -1, 2, -1, -1 }
Returns: {2 }
6
{0, -1, 1, 0, -1, -1 }
Returns: { }
2
{0, 0 }
Returns: { }