php求正负数数组中连续元素最大值示例
php实现正负数数组最大子序列,要求给出数组,该数组由正负数字组成,找出该数组中连续元素组成的子数组的最大值。
这其实得算是个背包变种吧。
<?php
$list = array(1,-3,-5,-7,8,9,-11,5);
$cur = 0;
$term = 0;
$res = 0;
$begin = 0;
foreach($list as $k => $v){
$cur += $v;
if($cur < 0){
$cur = 0;
$begin = $k + 1;
}
if($cur > $res){
$res = $cur;
$term = $k;
}
}
$max_seq = array_slice($list, $begin, ($term - $begin) + 1);
echo $res . ',';
print_r($max_seq);
//17,Array ( [0] => 8 [1] => 9 )
相关推荐
-
php获取数组中键值最大数组项的索引值 原创
本文实例讲述了php获取数组中键值最大数组项的索引值的方法.分享给大家供大家参考.具体分析如下: 一.问题: 从给定数组中获取值最大的数组项的键值.用途如:获取班级得分最高的学生的姓名. 二.解决方法: <?php /* * Created on 2015-3-17 * Created by www.jb51.net */ $arr=array('tom'=>9,'jack'=>3,'kim'=>5,'hack'=>4); asort($arr); //print_r($ar
-
求PHP数组最大值,最小值的代码
复制代码 代码如下: <?php $fruits = array("155::vbscript::http://www.jb51.net/list/list_114_1.htm", "1::javascript::http://www.jb51.net/list/list_3_1.htm", "2::正则表达式::http://www.jb51.net/list/list_6_1.htm", "3::服务器常用软件::http:/
-
判断php数组是否为索引数组的实现方法
HP没有内置判断是否索引数组的方法,简单实现了一个,用法: 复制代码 代码如下: echo is_assoc($array)?'索引数组':'不是索引数组'; is_assoc函数如下: 复制代码 代码如下: function is_assoc($array) { if(is_array($array)) { $keys = array_keys($array); return $keys != array_keys($keys);
-
php数组中删除元素之重新索引的方法
如果要在某个数组中删除一个元素,可以直接用的unset,但今天看到的东西却让我大吃一惊 复制代码 代码如下: <?php $arr = array('a','b','c','d'); unset($arr[1]); print_r($arr); ?> print_r($arr)之后,结果却不是那样的,最终结果是 Array ( [0] => a [2] => c [3] => d ) 那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是 array_splice(
-
PHP获取数组最大值下标的方法
本文实例讲述了PHP获取数组最大值下标的方法.分享给大家供大家参考.具体实现方法如下: <?php $hots = array('8213'=> 0,'8212'=> 100,'8172'=> 10008); $key = array_search(max($hots),$hots); echo $key; ?> 运行结果为:8172 希望本文所述对大家的php程序设计有所帮助.
-
PHP删除特定数组内容并且重建数组索引的方法.
复制代码 代码如下: $a = array('a','b','c','d'); unset($a[2]); print_r($a); 但是这种方法的最大缺点是没有重建数组索引. 经过查资料后.原来PHP提供了这个功能.只不过很间接.. 这个函数是array_splice. 为了使用方便.我封装成了一个函数.方便大家使用. 复制代码 代码如下: function array_remove(&$arr,$offset){ array_splice($arr,$offset,1); } $a = ar
-
php求正负数数组中连续元素最大值示例
php实现正负数数组最大子序列,要求给出数组,该数组由正负数字组成,找出该数组中连续元素组成的子数组的最大值.这其实得算是个背包变种吧. 复制代码 代码如下: <?php$list = array(1,-3,-5,-7,8,9,-11,5); $cur = 0;$term = 0;$res = 0;$begin = 0; foreach($list as $k => $v){ $cur += $v; if($cur < 0){ $cur = 0; $begin = $k + 1; }
-
java 键盘输入一个数,输出数组中指定元素的示例
如下所示: package com.lcn.day05; import java.util.Scanner; public class ArrayDemo7 { /** *键盘输入一个数,输出数组中指定元素 */ public static void main(String[] args) { // 定义一个数组 int[] array = new int[]{123,456,789,321,654,987}; //创建输入对象 Scanner sc = new Scanner(System.i
-
JS求Number类型数组中最大元素方法
如何使用JS,在一个Number类型的数组里,查找最大(或最小)数呢? 以下介绍四个方法. 1. 不使用任何库函数 代码如下: function findMax1 (arr) { let result = 0; if (Array.isArray(arr)) { for (let i = 0; i < arr.length; i++) { result = arr[i] > result ? arr[i] : result; } return result; } else { console.
-
JS实现根据指定值删除数组中的元素操作示例
本文实例讲述了JS实现根据指定值删除数组中的元素操作.分享给大家供大家参考,具体如下: 解决问题: 1 .JS判断元素是否在数组内 2. JS根据指定值删除数组中的元素 要点:相当于jquery 的 $.inArray() 这个方法 原生js 如果想删除数组,有一个函数 splice() ~~ 删除元素,并向数组添加新元素. 这个货 是根据数组内的下标 也就是索引来 删除元素的比如: var arrList = ['a','b','c','d']; arrList.splice(2,1);
-
PHP从数组中删除元素的四种方法实例
茴香豆的"茴"字有四种写法,PHP从数组中删除元素也有四种方法 ^_^. 删除一个元素,且保持原有索引不变 使用 unset 函数,示例如下: <?php $array = array(0 => "a", 1 => "b", 2 => "c"); unset($array[1]); //↑ 你想删除的key ?> 输出: Array ( [0] => a [2] =>
-
python如何获得list或numpy数组中最大元素对应的索引
获得list中最大元素的索引 aa = [1,2,3,4,5] aa.index(max(aa)) 相应的最小值使用 aa = [1,2,3,4,5] aa.index(min(aa)) 获得numpy数组中最大元素的索引 1.可以使用numpy的函数,argmax获得最大元素的索引,相应的获得最小值的话需要使用argmin. aa = [1,2,3,4,5] arr_aa = np.array(aa) maxindex = np.argmax(arr_aa ) 1.也可以将numpy转为lis
-
利用JS十分钟判断数组中存在元素的多种方式
前言 在前端开发中,经常会遇到要判断数组中是否存在某个元素.其实判断的方式有很多种,我们一个一个来了解下. 我们先来定义一个数组: const arr = [ 13, false, 'abcd', undefined, 13, null, NaN, [1, 2], { a: 123 }, () => Date.now(), new Date('2021/03/04'), new RegExp('abc', 'ig'), Symbol('sym'), ]; 在这个数组中,我们包含了好几种类型:nu
-
Java编程实现统计数组中各元素出现次数的方法
本文实例讲述了Java编程实现统计数组中各元素出现次数的方法.分享给大家供大家参考,具体如下: package javatest; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class NumOfEle { public static void main(String[] ar
-
利用js查找数组中指定元素并返回该元素的所有索引示例
前言 这篇文章主要给大家介绍的是利用js查找数组中指定元素并返回该元素的所有索引的相关资料,文中给出了详细的示例代码,下面话不多说,来看看详细的代码示例吧. 示例代码 //在数组中查找所有出现的x,并返回一个包含匹配索引的数组 function findall(a,x){ var results=[], len=a.length, pos=0; while(pos<len){ pos=a.indexOf(x,pos); if(pos===-1){//未找到就退出循环完成搜索 break; } r
-
js删除Array数组中指定元素的两种方法
本节内容: js删除Array数组中指定元素 方法一, /* * 方法:Array.remove(dx) 通过遍历,重构数组 * 功能:删除数组元素. * 参数:dx删除元素的下标. */ Array.prototype.remove=function(dx) { if(isNaN(dx)||dx>this.length){return false;} for(var i=0,n=0;i<this.length;i++) { if(this[i]!=this[dx]) { this[n++]=
随机推荐
- Web上功能强大的DbGrid表格HTC组件[只需在Table中指定样式就可以完成多种功能可扩展]
- ASP.NET Core Razor 页面路由详解
- AjaxFileUpload结合Struts2实现多文件上传(动态添加文件上传框)
- JavaScript箭头(arrow)函数详解
- JScript中正则表达函数的说明与应用
- JavaScript CSS修改学习第三章 修改样式表
- 正则表达式的字符串替换方法
- 好好了解一下Cookie(强烈推荐)
- JS正则表达式验证中文字符
- JavaScript实现移动端轮播效果
- Android编程滑动效果之Gallery仿图像集浏览实现方法
- JQuery为元素添加样式的实现方法
- javascript 学习之旅 (2)
- JS获取鼠标坐标位置实例分析
- 土人系列AS入门教程--基础篇
- IIS6设置网站经常遇到的问题总结
- 在mybatis执行SQL语句之前进行拦击处理实例
- android如何设置小区广播默认信道(50与60并支持双卡)
- dede3.1分页文字采集过滤规则详说(图文教程)续二
- php提交表单时保留多个空格及换行的文本样式的方法