2018-03-28-华为最大连续子数组和

1、问题描述:

从一串整数数组中找出最大连续 子数组的和,整数数组中有正数和负数,0

输入:

2,-3,4,8

输出:

12

思路:

首先,规定一个最大值是max1=0

然后,二重循环,第一重是取第1个到最后一个元素,规定数字元素和s=0,第二重循环是从第一重下标元素开始累加,直到数组长度为止,其中每累加一次,就和最大的值max1比较,若大于最大的值,就将其赋值给max1,知道第二重循环结束。返回第一重,接着去下一个下标元素。重复

总结:就是从每到一个元素开始,就进行多次累加直到累加完后面的所有元素。每累加一次就和最大值比较,可能要更新最大值

代码:

if __name__=='__main__':
    n=[int(i)for i in raw_input().split(',')]
    # n=eval(raw_input())
    # n=list(n)
    max1=0
    for i in range(len(n)):
        s=0
        for j in range(i,len(n)):
            s=s+n[j]
            if s>=max1:
                max1=s
    print max1

2、知识点补充:

实现,一次输入很多数字,并且以逗号间隔

方法一:


方法二:


3、存在问题:

在牛客网编译运行,是结果通过80%,不知道为什么没有全对。欢迎大家看到该博文指正。

4、编程题第二题:

题目是,自然键盘字母转标准键盘字母,自然键盘字母是“ABCDEFGHIJKLMNOPQRSTUVWXYZ”

标准键盘字母是“QWERTYUIOPASDFGHJKLZXCVBNM”

小明不知道自己使的是自然键盘以为使的是标准键盘,敲了一个“H ks k..”,对应标准键盘“I am a boy.”问他对应标准键盘时应敲得是什么?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值