代码随想录 -- 数组 -- 区间和

58. 区间和(第九期模拟笔试) (kamacoder.com)

暴力解法大概率超时,应采用前缀和解法

p[i] 表示 vec[0] 到 vec[i] 的累加和

求 vec[m] 到 vec[n] 的和只需要 p[n] - p[m] 即可

知识点

input函数

Python3 中

raw_input() 和 input() 进行了整合,去除了 raw_input( ),仅保留了input( )函数,其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型。

需要接收整数类型时,可以借助 int() 函数转为整数类型。

Python2 中

raw_input( ) 和 input( ),两个函数都存在,其中区别为:

  • raw_input( ) 将所有输入作为字符串看待,返回字符串类型。
  • input( ) 只能接收"数字"的输入,在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )。

map函数

语法:map(function, iterable, ...)

  • function -- 函数
  • iterable -- 一个或多个序列

Python 2 返回列表。

Python 3 返回迭代器,需要使用 list() 函数将其转为列表。

try...except...异常处理

标准异常链接:Python 异常处理 | 菜鸟教程 (runoob.com)

n = int(input())
arr = [0]*n
p = [0]*n
for i in range(n):
    arr[i]=int(input())
p[0]=arr[0]
for i in range(1,n):
    p[i]=p[i-1]+arr[i]
# print(p)
while True:
    try:
        a,b=map(int,input().split())
        if a>=0 and b<n and b>=a:
            if a==0:
                res=p[b]
            else:
                res=p[b]-p[a-1]
            print(res)
        else:
            continue
    except EOFError:
        break
    except ValueError:
        continue

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值