human
Smallest element present in every subarray of all possible lengths | Function to print the common elements for all subarray lengths.
Function to find and store the minimum element present in all subarrays of all lengths from 1 to n.
Skip lengths for which answer [ i ] is - 1.
Initialize minimum as the first element where answer [ i ] is not - 1.
Updating the answer array.
If answer [ i ] is - 1 , then minimum can be substituted in that place.
Find minimum answer.
Function to find the minimum number corresponding to every subarray of length K , for every K from 1 to N.
Stores the minimum common elements for all subarray lengths Initialize with - 1..
Find for every element , the minimum length such that the number is present in every subsequence of that particular length or more.
To store first occurence and gaps between occurences.
To cover the distance between last occurence and the end of the array.
To find the distance between any two occurences.
Update and store the answer.
Print the required answer.
Function to find the smallest element common in all subarrays for every possible subarray lengths.
Initializing indices array.
Store the numbers present in the array.
Push the index in the indices [ A [ i ] ] and also store the numbers in set to get the numbers present in input array.
Function call to calculate length of subarray for which a number is present in every subarray of that length.
Given array.
Size of array.
Function Call"
How can the above be solved in Python?
assistant
#Here is code to smallest element present in every subarray of all possible lengths and the other steps required.
 def printAnswer ( answer , N ) :
	for i in range ( N + 1 ) :
		print ( answer [ i ] , end = " ▁ " )
def updateAnswerArray ( answer , N ) :
	i = 0
	while ( answer [ i ] == - 1 ) :
		i += 1
	minimum = answer [ i ]
	while ( i <= N ) :
		if ( answer [ i ] == - 1 ) :
			answer [ i ] = minimum
		else :
			answer [ i ] = min ( minimum , answer [ i ] )
		minimum = min ( minimum , answer [ i ] )
		i += 1
def lengthOfSubarray ( indices , st , N ) :
	answer = [ - 1 for i in range ( N + 1 ) ]
	for itr in st :
		start = - 1
		gap = - 1
		indices [ itr ] . append ( N )
		for i in range ( len ( indices [ itr ] ) ) :
			gap = max ( gap , indices [ itr ] [ i ] - start )
			start = indices [ itr ] [ i ]
		if ( answer [ gap ] == - 1 ) :
			answer [ gap ] = itr
	updateAnswerArray ( answer , N )
	printAnswer ( answer , N )
def smallestPresentNumber ( arr , N ) :
	indices = [ [ ] for i in range ( N + 1 ) ]
	elements = [ ]
	for i in range ( N ) :
		indices [ arr [ i ] ] . append ( i )
		elements . append ( arr [ i ] )
	elements = list ( set ( elements ) )
	lengthOfSubarray ( indices , elements , N )
arr = [ 2 , 3 , 5 , 3 , 2 , 3 , 1 , 3 , 2 , 7 ]
N = len ( arr )
smallestPresentNumber ( arr , N )