社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
https://blog.csdn.net/kaikai_sk/article/details/90216539
https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/
class Solution:
def maxProfit(self, prices: List[int]) -> int:
n = len(prices)
if n < 2:
return 0
ret = [0] * n
for i in range(n-1):
tmp = sorted(prices[(i+1):])
if tmp[-1] > prices[i]:
ret[i] = tmp[-1] - prices[i]
return(max(ret))
动态规划:当前最大得分=max(该位置开始, 从前一位置相加)
https://leetcode-cn.com/problems/maximum-subarray/
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
n = len(nums)
ret = [nums[0]]
for i in range(1,n):
tmp = ret[-1]
ret.append(max(nums[i], nums[i]+tmp))
return(max(ret))
https://blog.csdn.net/qq_34796146/article/details/105060606?depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-16&utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-16
def zuhe(n,m):
ret = 1
for i in range(n-m+1,n+1):
ret = ret * i
for i in range(1,m+1):
ret = ret/i
return ret
n = int(input())
res = 0
for i in range(1,n+1):
tmp = i * zuhe(n,i)
res = res + tmp
print(res)
结果
4
32.0
https://blog.csdn.net/JH_Shawlin/article/details/105231846
def maxIndex(a, n, k):
ret = 0
a[0] = a[0]+k
for i in range(1,n):
a[i] = a[i] + k
if a[i]>a[ret]:
ret = i
return ret
n, m, k = map(int, input().split())
a = list(map(int, input().split()))
for i in range(m):
j = maxIndex(a, n, k)
a[j] = int(a[j]/2)
print(sum(a))
题目一:
题目描述:
现在有n个怪物,每一个怪物有一定的血量,你手里有m只箭,每一只箭都有一个伤害值,同时也有一个花费。我们现在假设每一只箭只能用一次并且每一个怪物也只能射一次,想要把所有怪物都击杀问最少需要花费多少,若无法全部击杀,则输出No。
击杀的条件为:使用的这只箭的伤害大干等于怪物的血量,则就可以击杀。
输入描述:
第一行输入一个整数了,代表有T组测试数据。
对于每一组测试数据,一行输入两个整数n和m,代表有n个怪物,m只接下来n个数,a(i)代表每一个怪物的血量,接下来m个数,b(i)代表每一只箭的伤害:接下来m个数,c(i)代表每一只箭的花费。
|1≤T≤10
|1≤n,m≤100000
1≤a[i],b[i],c[i]≤100000
输出描述:
对于每一组数据,输出一行,代表满障怪物的最少花费,若消除不了,输出NO
题目二:
题目描述
小强很喜欢二进制的里,现在给你一个二进制串,可以翻转若干次,翻转规则如:你可以选择任一个位置将这位进行翻转,同时他的左面和右面相邻的1个位置也进行翻转,翻转是0变成1,1变成0例如:11011,我们选择在第三个位置翻转。则第二个位置和第四个位置也跟着翻转,所以反转后变成10101若翻转位置在最左侧,则只有右侧相邻元素跟右进行翻转,右翻转位置在最右侧,则只有左侧相邻元素跟看翻转。
现在小强给你这个二进制串,他想知道能不能做通过翻转,使得这个二进制串的所有位部是0,若可以,请找到最少的操作次数,若不可以输出NO.
输入描述:
第一行输入一个整数T,代表有T组测试数据,接下来丁行,每一行一个字符串S,保证只有0和1。
1≤T≤100
1≤len(s)≤20
输出描述:
对子每一组教据,继出一行,代表最少的操作次数,若不可以,输出N0。
https://www.nowcoder.com/questionTerminal/cc0a71a1dfdb4c64a3ffe000f71ae12c
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!