# Power Set – algorithmic and fast

class Solution: # @param A : list of integers # @return a list of list of integers def subsets(self, A):     if len(A) == 0:         return [[]]     h, t = A, A[1:]     subsets_excluding_h = self.subsets(t)     subsets_including_h = [sorted([h] + ss) for ss in subsets_excluding_h] […]

# Atoi

class Solution: # @param A : string # @return an integer def atoi(self, A): mx = (2**31)-1 mn = -(2**31) s = ” for x in A: if x.isdigit() or (A.index(x)==0 and x in (‘-‘, ‘+’)): s += x else: break if (s and s.isdigit()) or (len(s)>1 and s in (‘+’, ‘-‘)): if 0 <= […]

# Maximum non-negative subarray

class Solution: # @param A : list of integers # @return a list of integers def maxset(self, A): i = 0 af = [] a1 = [] while i < len(A): if A[i] >= 0: a1.append(A[i]) else: af.append(a1) a1 = [] i += 1 # Append the last subarray, if any af.append(a1) # Find a […]

# Painter’s Partition Problem

class Solution: # @param A : integer # @param B : integer # @param C : list of integers # @return an integer def partition(self, arr, n, k):     # One painter     if k==1:         return sum(arr[0:n])          # One Board to paint     if […]