human
Find the Longest Increasing Subsequence in Circular manner | Utility method to find LIS using Dynamic programming.
Initialize LIS values for all indexes.
Compute optimized LIS values in bottom up manner.
Set j on the basis of current window i . e . first element of the current window.
Pick maximum of all LIS values.
Function to find Longest Increasing subsequence in Circular manner.
Make a copy of given array by appending same array elements to itself.
Perform LIS for each window of size n.
Driver code"
Solution in Python:

What is a code to find the Longest Increasing Subsequence in Circular manner and the other steps required?
assistant
#Here is code to find the Longest Increasing Subsequence in Circular manner and the other steps required.
 def computeLIS ( circBuff , start , end , n ) :
	LIS = [ 0 for i in range ( end ) ]
	for i in range ( start , end ) :
		LIS [ i ] = 1
	for i in range ( start + 1 , end ) :
		for j in range ( start , i ) :
			if ( circBuff [ i ] > circBuff [ j ] and LIS [ i ] < LIS [ j ] + 1 ) :
				LIS [ i ] = LIS [ j ] + 1
	res = - 100000
	for i in range ( start , end ) :
		res = max ( res , LIS [ i ] )
	return res
def LICS ( arr , n ) :
	circBuff = [ 0 for i in range ( 2 * n ) ]
	for i in range ( n ) :
		circBuff [ i ] = arr [ i ]
	for i in range ( n , 2 * n ) :
		circBuff [ i ] = arr [ i - n ]
	res = - 100000
	for i in range ( n ) :
		res = max ( computeLIS ( circBuff , i , i + n , n ) , res )
	return res
arr = [ 1 , 4 , 6 , 2 , 3 ]
n = len ( arr )
print ( " Length ▁ of ▁ LICS ▁ is " , LICS ( arr , n ) )