【Py面试题】找到数组或整数列表中连续子序列的最大和
测试面试题
找到数组或整数列表中连续子序列的最大和
找到数组或整数列表中连续子序列的最大和,并满足以下条件:
- 列表仅由正数组成并且最大和是整个数组的总和。
- 如果列表仅由负数组成,则返回 0
- 空列表被认为具有零最大和
注意:* 空列表
或 数组
也是有效的子列表/子数组。*
假设存在列表: [-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面试题】找到数组或整数列表中连续子序列的最大和相关推荐
- python二维数组去重复_python 去除二维数组/二维列表中的重复行方法
python 去除二维数组/二维列表中的重复行方法 之前提到去除一维数组中的重复元素用unique()函数,如果要去除二维数组中的重复行该怎么操作呢? import numpy as np arr = ...
- python统计列表中元素个数_python中计算一个列表中连续相同的元素个数方法
python中计算一个列表中连续相同的元素个数方法 最简单的例子: a = [1,1,1,1,2,2,2,3,3,1,1,1,3] # 问:计算a中最多有几个连续的1 很明显,答案是4 如果用代码实现 ...
- C语言数组元素总和最大的连续子序列的算法(附完整源码)
C语言数组元素总和最大的连续子序列的算法 C语言数组元素总和最大的连续子序列的算法完整源码(定义,实现,main函数测试) C语言数组元素总和最大的连续子序列的算法完整源码(定义,实现,main函数测 ...
- python整数类型在每一台计算机上的取值范围是一样的_关于python统计一个整数列表中不同数值种类数的问题。...
下面这段代码中,kind_num用于统计那个整数列表中有几种不同数值的整数. class Solution(object): def distributeCandies(self, candies): ...
- java读取整数列表_Java-检查整数列表中的X类整数
由于我没有足够的声誉来编辑我的文章,下面是我的答案@gblodgett: 嘿!谢谢你的回复.我正在做一个法克尔的游戏,因此我需要找出有多少1,2,3,4,5,6在列表中,然后给分(遵循规则).我做了一 ...
- 求数组非连续子序列的最大和
题目描述: 1. 一个整数数组L,如 L=[2,-3,3,50], 求L的一个非连续子序列,使其和最大,输出最大子序列的和.这里非连续子序列的定义是,子序列中任意相邻的两个数在原序列里都不相邻.例如, ...
- python123去除整数列表中的素数_爱国主义包含着( )三个基本方面。
[简答题]有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.....求出这个数列的前20项之和. [简答题]输入3个整数,并把这3个数由小到大输出. [单选题]下列程序的输出是( ) ...
- (Python)统计列表中连续、重复次数最多的元素出现的次数
当然这题还可以有多重演变形式,如统计某元素连续出现的最大次数,连续出现次数最大的元素等等.思路大致一样: li = [1, 2, 3, 4, 2, 2, 2, 5, 2, 1, 1, 1, 1, 2, ...
- 检查列表中是否存在值的最快方法
知道列表中是否存在值(列表中包含数百万个值)及其索引是什么的最快方法是什么? 我知道列表中的所有值都是唯一的,如本例所示. 我尝试的第一种方法是(在我的实际代码中为3.8秒): a = [4,2,3, ...
最新文章
- 一些 Windows 命令行学习
- 使用Pandas进行变量衍生
- dnslog在mysql在linux_DNSLog在MySQL注入中的实战
- 经典永不过时!重温设计模式
- ADO.NET中在C/S模式中使用的连接池
- 20155320《网络对抗》Exp4 恶意代码分析
- mysql怎样查表的模式_mysql常用基础操作语法(四)--对数据的简单无条件查询及库和表查询【命令行模式】...
- 如何下载B站视频到本地?
- 基本数据结构—Trie
- 在cs页面获取input的值方法
- php try catch,php源码-try、catch过程-原理
- SVN入门教程,超简单,30分钟学会!
- Flutter开发之常用Widget学习
- 计算机所有以太网适配的ip,以太网没有有效的ip配置怎么办
- linux输入法怎么关闭,关于Ubuntu 7.10的缺省输入法Xim
- 解决USB无法安装驱动识别的问题
- The server time zone value ‘й‘ is unrecognized or represents more than one time zone
- tp5与tp6的区别是啥呀?
- 【RT-Thread 开源作品秀】小型蚯蚓养殖监控系统
- 安卓插件化学习 - 类的加载