
*TLDR:
Input:
bids = list of lists of ints representing [userid, # shares, $bid, timestamp]
TotalShares = Total # из -за распределения акций. Логика распределения акций: 1) Участник с самым высоким предложением получает все акции, на которые они сталкиваются, а затем 2) Если есть связи по цене $ Bid, назначить акции более ранним участникам < /p>
для вышеуказанного вопроса, я чувствую, что решение, которое я придумал, относительно прост, но он, кажется, передает все краевые случаи. Единственная сомнительная ситуация, о которой я могу придумать, - это как < /p>
Цена ставки, и время одинаковы, и не хватает достаточных акций для всех участников торгов, то есть: alds = [[0,2,10,0], [1,2,10,0]], а общий шоры = 2. Я неясен, если 1 -й акция будет дана каждому или пользователю 0, что и оба. /> Кто -нибудь видит, может ли мое решение быть оптимизировано в любом случае? < /p>
def getUnallocatesUsers(bids, totalShares):
s = 0
for b in bids:
s += b[1]
if totalShares >= s: return [] # no losers because enough shares to go around
bids.sort(key = lambda x: (-x[2],x[3])) # sort by highest bid, then timestamp for ties
losers = []
for b in bids:
if totalShares
Подробнее здесь: https://stackoverflow.com/questions/634 ... w-question