A non-empty zero-indexed array A consisting of N integers is given. The first covering prefix of array A is the smallest integer P such that 0≤P<N and such that every value that occurs in array A also occurs in sequence A[0], A[1], ..., A[P].
For example, the first covering prefix of the following 5−element array A:
A[0] = 2 A[1] = 2 A[2] = 1 A[3] = 0 A[4] = 1
is 3, because sequence [ A[0], A[1], A[2], A[3] ] equal to [2, 2, 1, 0], contains all values that occur in array A.
Write a function
class Solution { public int solution(int[] A); }
that, given a zero-indexed non-empty array A consisting of N integers, returns the first covering prefix of A.
Assume that:
- N is an integer within the range [1..1,000,000];
- each element of array A is an integer within the range [0..N−1].
For example, given array A such that
A[0] = 2 A[1] = 2 A[2] = 1 A[3] = 0 A[4] = 1
the function should return 3, as explained above.
Complexity:
- expected worst-case time complexity is O(N);
- expected worst-case space complexity is O(N), beyond input storage (not counting the storage required for input arguments).
Elements of input arrays can be modified.
1 def solution(A): 2 hasht={} 3 a=[] 4 for ls in A: 5 if hasht.has_key(ls): 6 a.append(True) 7 else: 8 a.append(False) 9 hasht[ls]=True 10 length=len(a)-1 11 while length>0: 12 if a[length]: 13 length-=1 14 else: 15 break 16 return length
用python自带的字典来实现哈希表的功能
BTW:最后得分100的感觉爽爆了