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.”问他对应标准键盘时应敲得是什么?