Module Expr Str Assign NameStore Str ClassDef bases body FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str If UnaryOpNot NameLoad body Return Num Assign NameStore Call NameLoad NameLoad Assign NameStore Num Assign NameStore BinOpAdd NameLoad Num While CompareLt NameLoad NameLoad body Assign NameStore BinOpDiv BinOpAdd NameLoad NameLoad Num If CompareEq NameLoad Num body Return NameLoad Assign NameStore Num For NameStore NameLoad body AugAssignAdd NameStore BinOpDiv NameLoad NameLoad If CompareGtE NameLoad NameLoad body Assign NameStore BinOpAdd NameLoad Num orelse Assign NameStore NameLoad Return BinOpSub NameLoad Num decorator_list decorator_list If CompareEq NameLoad Str body Assert CompareEq Call AttributeLoad Call NameLoad attr ListLoad Num Num Num Num Num Num
N/A N/A 
Given n pieces of wood with length L[i] (integer array). Cut them into small pieces to guarantee you could have equal or
more than k pieces with the same length. What is the longest length you can get from the n pieces of wood? Given L & k,
return the maximum length of the small pieces.

Have you met this question in a real interview? Yes
Example
For L=[232, 124, 456], k=7, return 114.

Note
You couldn't cut wood into float length.

Challenge
O(n log Len), where Len is the longest length of the wood.
 N/A __author__ Daniel Solution N/A N/A woodCut N/A N/A self L k N/A N/A N/A 

        :param L: Given n pieces of wood with length L[i]
        :param k: An integer
        :return: The maximum length of the small pieces.
         N/A N/A L N/A N/A 0 N/A maxa N/A max L N/A lo 0 N/A hi N/A maxa 1 N/A N/A lo hi N/A N/A m N/A N/A lo hi 2 N/A N/A m 0 N/A N/A m N/A cnt 0 N/A l L N/A N/A cnt N/A l m N/A N/A cnt k N/A N/A lo N/A m 1 N/A N/A hi m N/A N/A lo 1 N/A N/A N/A N/A __name__ __main__ N/A N/A N/A N/A N/A N/A Solution woodCut N/A 2147483644 2147483645 2147483646 2147483647 4 2147483644