ᅠ
itertools.accumulate
Size: a a a
ᅠ
itertools.accumulate
ᅠ
TD
ᅠ
ᅠ
ᅠ
len([n for n in numbers if n])
ᅠ
functools.reduce
reduce(lambda s, n: s + bool(n), numbers)
AT
transaction_number
, которое представляет собой количество транзакций, которые вы можете совершить. Одна сделка состоит из покупки акции в данный день и продажи в другой, в более поздний день.transaction_number
.prices = [5, 11, 3, 50, 60, 90]
transaction_number = 2
93 // Buy: 5, Sell: 11; Buy: 3, Sell: 90
𝕬
pl
pl
А
sum(map(bool, numbers)))
🌚БГ
AT
transaction_number
, которое представляет собой количество транзакций, которые вы можете совершить. Одна сделка состоит из покупки акции в данный день и продажи в другой, в более поздний день.transaction_number
.prices = [5, 11, 3, 50, 60, 90]
transaction_number = 2
93 // Buy: 5, Sell: 11; Buy: 3, Sell: 90
𝕬
БГ
AT
import operator
prices = [5, 11, 3, 50, 60, 90]
transaction_number = 2
def neighbours(arr, i):
res = []
if i < len(arr) - 1:
res.append(arr[i + 1])
if i > 0:
res.append(arr[i - 1])
return res
def _extremums(func, name):
def inner(arr):
return {(name, i, x) for i, x in enumerate(arr) if all(func(x, y) for y in neighbours(arr, i))}
return inner
lows = _extremums(operator.lt, 'low')
highs = _extremums(operator.gt, 'high')
extremums = sorted(lows(prices) | highs(prices), key=lambda x: x[1])
print(sum(x[1] for x in sorted(((i, abs(x[2] - y[2])) for i, (x, y) in enumerate(zip(extremums, extremums[1:]))), key=lambda x: x[1])[-transaction_number:]))
БГ
import operator
prices = [5, 11, 3, 50, 60, 90]
transaction_number = 2
def neighbours(arr, i):
res = []
if i < len(arr) - 1:
res.append(arr[i + 1])
if i > 0:
res.append(arr[i - 1])
return res
def _extremums(func, name):
def inner(arr):
return {(name, i, x) for i, x in enumerate(arr) if all(func(x, y) for y in neighbours(arr, i))}
return inner
lows = _extremums(operator.lt, 'low')
highs = _extremums(operator.gt, 'high')
extremums = sorted(lows(prices) | highs(prices), key=lambda x: x[1])
print(sum(x[1] for x in sorted(((i, abs(x[2] - y[2])) for i, (x, y) in enumerate(zip(extremums, extremums[1:]))), key=lambda x: x[1])[-transaction_number:]))
AT
ᅠ
import operator
prices = [5, 11, 3, 50, 60, 90]
transaction_number = 2
def neighbours(arr, i):
res = []
if i < len(arr) - 1:
res.append(arr[i + 1])
if i > 0:
res.append(arr[i - 1])
return res
def _extremums(func, name):
def inner(arr):
return {(name, i, x) for i, x in enumerate(arr) if all(func(x, y) for y in neighbours(arr, i))}
return inner
lows = _extremums(operator.lt, 'low')
highs = _extremums(operator.gt, 'high')
extremums = sorted(lows(prices) | highs(prices), key=lambda x: x[1])
print(sum(x[1] for x in sorted(((i, abs(x[2] - y[2])) for i, (x, y) in enumerate(zip(extremums, extremums[1:]))), key=lambda x: x[1])[-transaction_number:]))