给定一个数组 arrarr 代表得分数组,请返回最少需要多少糖果
描述:有 n 个活动即将举办,每个活动都有开始时间与活动的结束时间,第 i 个活动的开始时间是 starti ,第 i 个活动的结束时间是 endi ,举办某个活动就需要为该活动准备一个活动主持人。
一位活动主持人在同一时间只能参与一个活动。并且活动主持人需要全程参与活动,换句话说,一个主持人参与了第 i 个活动,那么该主持人在 (starti,endi) 这个时间段不能参与其他任何活动。求为了成功举办这 n 个活动,最少需要多少名主持人。
输入:
2,[[1,2],[2,3]]
返回值:
1
说明:
只需要一个主持人就能成功举办这两个活动
输入:
2,[[1,3],[2,4]]
返回值:
2
说明:
需要两个主持人才能成功举办这两个活动
描述:假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益
1.你可以买入一次股票和卖出一次股票,并非每天都可以买入或卖出一次,总共只能买入和卖出一次,且买入必须在卖出的前面的某一天
2.如果不能获取到任何利润,请返回0
3.假设买入卖出均无手续费
数据范围: 0 <= n <= 10^5 , 0 <= val <= 10^4
要求:空间复杂度 O(1),时间复杂度 O(n)
描述:假设你有一个数组prices,长度为n,其中prices[i]是某只股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益
描述:描述
假设你有一个数组prices,长度为n,其中prices[i]是某只股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益
这里的buy2以及profit2如何更新?
1.只有一个数出现奇数次,其它数出现偶数次
2.共有两个数出现奇数次,其它数目出现偶数次
#一个数&与自己的取反加1就是得到该数最右位置的1
eor&(~eor+1)
你先把价格按日期排序之后变成一个list的话,比如:price=[70,74, 73, 72, 71,75]
你可以这么办:
operations=[]
isLong=False
for i in range(len(price)-1):
if(not isLong):
if(price[i]<price[i+1]):
print "Go long on day " + str(i)
operations.append(-1)
isLong=True
else:
operations.append(0)
else:
if(price[i]>price[i+1]):
print "Go short on day " + str(i)
operations.append(1)
isLong=False
else:
operations.append(0)
if(isLong):
print "Go short on day " + str(len(price)-1)
operations.append(1)
else:
operations.append(0)
ProfitPerShare=0
for i in range(len(price)):
ProfitPerShare+=price[i]*operations[i]
print "Summary profit per share: "+str(ProfitPerShare)
这里面就是说,如果你是空仓,那么如果明天比今天高就买,否则明天买就比今天买更划算;如果你不空仓,那么如果明天比今天价低你就要清仓,否则明天卖就会更划算。然后用一个叫operations的list来记录你每天的操作,-1表示买,0表示没有,1表示卖,所以最后可以计算每股获得的收入price[i]*operations[i]的总和。