Python 算法 2022-06-23

Python016

Python 算法 2022-06-23,第1张

描述:一群孩子做游戏,现在请你根据游戏得分来发糖果,要求如下:

给定一个数组 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)

104。

分析过程如下:

有一些糖果,平均分给3个人多2块,平均分给5个人多4块,平均分给7个人多6块,可以得知:,无论分给3、5还是7个人,都是差1个就刚好可以平均分配。

由此可得:这些糖果最少的数目=3,5,7的最小公倍数-1。

3,5,7都是质数,所以它们的最小公倍数是它们的乘积,由此可得:3,5,7的最小公倍数=3×5×7=105。

进而可得:这些糖果最少的数目=105-1=104。

扩展资料:

最大公因数和最小公倍数之间的性质:两个自然数的乘积等于这两个自然数的最大公约数和最小公倍数的乘积。最小公倍数的计算要把三个数的公有质因数和独有质因数都要找全,最后除到两两互质为止。

最小公倍数特点:倍数的只有最小的没有最大,因为两个数的倍数可以无穷大。

最小公倍数计算方法:

1、分解质因数法

2、公式法。

适用范围

分数的加减法,中国剩余定理(正确的题在最小公倍数内有解,有唯一的解)。

根据题意,无论分给3、4、5个人,都是差1个就刚好可以平均分配,所以,糖果总数的最小值就是3、4、5的最小公倍数-1,而且3、4、5又是互质数,它们的最小公倍数就是它们的乘积。所以,糖果总数的最小值=3x4x5-1=59个。