测试面试题

找到数组或整数列表中连续子序列的最大和

找到数组或整数列表中连续子序列的最大和,并满足以下条件:

  1. 列表仅由正数组成并且最大和是整个数组的总和。
  2. 如果列表仅由负数组成,则返回 0
  3. 空列表被认为具有零最大和

注意:* 空列表数组 也是有效的子列表/子数组。*

假设存在列表: [-2, 1, -3, 4, -1, 2, 1, -5, 4]
那么它的输出项应为:6:[4, -1, 2, 1]

本文使用的是 Python 进行解题,其他同学可使用其他语言进行尝试~~

解题方法1:

def max_sequence(arr):max_list = []n, num = len(arr), 0                        # 获取列表长度max_n = max(arr) if len(arr) != 0 else 0    # 判断列表内数据是否全部是负数# 判断列表和if n == 0 or max_n <= 0:return 0else:while n != 0:for i in arr:num += imax_list.append(num)num = 0arr.pop(0)n = len(arr)return max(max_list)lists = [-2, 1, -3, 4, -1, 2, 1, -5, 4]
print(max_sequence(lists))

解题方法2:

def max_sequence(arr):max1, curr = 0, 0for x in arr:curr += xif curr < 0:curr = 0if curr > max1:max1 = currreturn max1lists = [-2, 1, -3, 4, -1, 2, 1, -5, 4]
print(max_sequence(lists))

解题方法3:

def max_sequence(arr):max_l = 0max_g = 0for n in arr:max_l = max(0, max_l + n)max_g = max(max_g, max_l)return max_g

【Py面试题】找到数组或整数列表中连续子序列的最大和相关推荐

  1. python二维数组去重复_python 去除二维数组/二维列表中的重复行方法

    python 去除二维数组/二维列表中的重复行方法 之前提到去除一维数组中的重复元素用unique()函数,如果要去除二维数组中的重复行该怎么操作呢? import numpy as np arr = ...

  2. python统计列表中元素个数_python中计算一个列表中连续相同的元素个数方法

    python中计算一个列表中连续相同的元素个数方法 最简单的例子: a = [1,1,1,1,2,2,2,3,3,1,1,1,3] # 问:计算a中最多有几个连续的1 很明显,答案是4 如果用代码实现 ...

  3. C语言数组元素总和最大的连续子序列的算法(附完整源码)

    C语言数组元素总和最大的连续子序列的算法 C语言数组元素总和最大的连续子序列的算法完整源码(定义,实现,main函数测试) C语言数组元素总和最大的连续子序列的算法完整源码(定义,实现,main函数测 ...

  4. python整数类型在每一台计算机上的取值范围是一样的_关于python统计一个整数列表中不同数值种类数的问题。...

    下面这段代码中,kind_num用于统计那个整数列表中有几种不同数值的整数. class Solution(object): def distributeCandies(self, candies): ...

  5. java读取整数列表_Java-检查整数列表中的X类整数

    由于我没有足够的声誉来编辑我的文章,下面是我的答案@gblodgett: 嘿!谢谢你的回复.我正在做一个法克尔的游戏,因此我需要找出有多少1,2,3,4,5,6在列表中,然后给分(遵循规则).我做了一 ...

  6. 求数组非连续子序列的最大和

    题目描述: 1. 一个整数数组L,如 L=[2,-3,3,50], 求L的一个非连续子序列,使其和最大,输出最大子序列的和.这里非连续子序列的定义是,子序列中任意相邻的两个数在原序列里都不相邻.例如, ...

  7. python123去除整数列表中的素数_爱国主义包含着(  )三个基本方面。

    [简答题]有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.....求出这个数列的前20项之和. [简答题]输入3个整数,并把这3个数由小到大输出. [单选题]下列程序的输出是( ) ...

  8. (Python)统计列表中连续、重复次数最多的元素出现的次数

    当然这题还可以有多重演变形式,如统计某元素连续出现的最大次数,连续出现次数最大的元素等等.思路大致一样: li = [1, 2, 3, 4, 2, 2, 2, 5, 2, 1, 1, 1, 1, 2, ...

  9. 检查列表中是否存在值的最快方法

    知道列表中是否存在值(列表中包含数百万个值)及其索引是什么的最快方法是什么? 我知道列表中的所有值都是唯一的,如本例所示. 我尝试的第一种方法是(在我的实际代码中为3.8秒): a = [4,2,3, ...

最新文章

  1. 一些 Windows 命令行学习
  2. 使用Pandas进行变量衍生
  3. dnslog在mysql在linux_DNSLog在MySQL注入中的实战
  4. 经典永不过时!重温设计模式
  5. ADO.NET中在C/S模式中使用的连接池
  6. 20155320《网络对抗》Exp4 恶意代码分析
  7. mysql怎样查表的模式_mysql常用基础操作语法(四)--对数据的简单无条件查询及库和表查询【命令行模式】...
  8. 如何下载B站视频到本地?
  9. 基本数据结构—Trie
  10. 在cs页面获取input的值方法
  11. php try catch,php源码-try、catch过程-原理
  12. SVN入门教程,超简单,30分钟学会!
  13. Flutter开发之常用Widget学习
  14. 计算机所有以太网适配的ip,以太网没有有效的ip配置怎么办
  15. linux输入法怎么关闭,关于Ubuntu 7.10的缺省输入法Xim
  16. 解决USB无法安装驱动识别的问题
  17. The server time zone value ‘й‘ is unrecognized or represents more than one time zone
  18. tp5与tp6的区别是啥呀?
  19. 【RT-Thread 开源作品秀】小型蚯蚓养殖监控系统
  20. 安卓插件化学习 - 类的加载

热门文章

  1. 从无到有算法养成篇-栈和队列·栈
  2. 用Tableau画瓷砖地图
  3. 深度学习核心技术精讲100篇(十五)-搜索引擎Indri系列之安装及使用
  4. 数学符号的读法和英文表示
  5. 机器学习算法与Python实践之(三)支持向量机(SVM)进阶
  6. Part2_4 Sqlite基础操作
  7. 通过分析 JDK 源代码研究 Hash 存储机制--转载
  8. CLOSE_WAIT状态的原因与解决方法 --转
  9. window xp Apache与Tomcat集群配置--转载
  10. tomcat源码分析(一)初始化---Debug方式