题目描述
算法思想:
1、如果k<=numOnes,则最大值就是全拿第一个,即为k
2、如果numOnes<k<=numZeros,则最多拿numOnes个值,即为numOnes
3、如果numZeros<k<=numNegOnes,则最多有numOnes个1,numZeros个0,k-numZeros-numOnes个-1,即为numOnes-(k-numZeros-numOnes)
4、如果k>numNegOnes,则最多有numOnes个1,numNegOnes个-1,即为numOnes-numNegOnes
实现过程(python)
class Solution:
def kItemsWithMaximumSum(self, numOnes: int, numZeros: int, numNegOnes: int, k: int) -> int:
if numOnes < k:
if numZeros > k - numOnes:
out = numOnes
else:
n = k - numOnes - numZeros
out = numOnes - n
elif numOnes >= k:
out = k
return out