Untitled

 avatar
unknown
plain_text
2 years ago
1.6 kB
9
Indexable
class Solution:
    def maximizeWin(self, prizePositions: List[int], k: int) -> int:
        
       
        out_map = dict.fromkeys(range(max(prizePositions) + 1), 0)
        
        for i in prizePositions:
            out_map[i] += 1
        key_set = list(out_map.keys())
        n = max(key_set)
        
        seg1 = [0, 0]
        seg2 = [0, 0]
        
        
        seg1_max = 0
        seg2_max = 0
        
        if k > n:
            seg1_max = sum(list(out_map.values()))
            
        else:
            for i in range(1, n-k+1):
                # print("i = ", i)
                summ = 0
                for val in range(k+1):
                    # print("key: ", i+val, "value: ", out_map[i+val])
                    summ += out_map[i+val]
                if summ > seg1_max:
                    seg1_max = summ
                    seg1[0] = i
                    seg1[1] = i + val 


            for i in range(1, n-k+1):
                summ = 0
                for val in range(k + 1):
                    if i+val < seg1[0] or i+val > seg1[1]:
                        summ += out_map[i+val]

                if summ > seg2_max:
                    seg2_max = summ
                    seg2[0] = i
                    # seg2.append(i)
                    seg2[1] = i + val
                    # seg2.append(i + k - 1)

            print("1: ", seg1_max, " and seg ", seg1)
            print("2: ", seg2_max, " and seg ", seg2)
        
        return seg1_max + seg2_max
        
        
        
            
            
        
        
        
        
Editor is loading...