CCF 202109-1 数组推导 python 满分

题目叙述

问题描述:略

输入格式:略

输出格式:略

样例

样例1输入
6
0 0 5 5 10 10

样例1输出
30
15

样例2输入
7
10 20 30 40 50 60 75

样例2输出
285
285

满分证明

在这里插入图片描述

解题思路

这个题相对来说比较简单,但在考试情况下可能会出现一种误解情况,如果走不出来的话,最后只能拿60分。
误解地方在于:
最小数并不是数组中最小元素,而是0
比如:
B=[5,5,10]
那么最小A=[ 5, 0, 10]
而不是:
A=[ 5, 5, 10]

下面分别为我自己写的代码和大佬优化过代码,不得不说大佬对此题的理解和对python知识融会贯通!

满分代码

n=int(input())
l=list(map(int,input().split()))
t_max=l[0]
t_min=0
s_max=0
s_min=0
for a in l:
    if a>t_min:
        t_min=a
        s_min=s_min+t_min
        
    if a>=t_max:
        t_max=a
        s_max=s_max+t_max
    else:
        s_max=s_max+t_max

print(s_max)
print(s_min)

大佬优化满分代码

n = int(input())
nums = list(map(int,input().split()))
print(sum(nums))
print(sum(set(nums)))

感谢及参考博文

部分内容参考以下链接,这里表示感谢 Thanks♪(・ω・)ノ
参考博文1 CCF202109-1 数组推导(100分)【序列处理】
https://blog.youkuaiyun.com/tigerisland45/article/details/120533375

需者自取传送门(∩ᄑ_ᄑ)⊃━☆【CCF 2013-2021】本博主整理历年至少前两题 python 满分代码目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值