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 $hots = array('8213'=> 0,'8212'=> 100,'8172'=> 10008); $key = array_search(max($hots),$hots); echo $key; ?> 运行结果为:8172 希望本文所述对大家的php程序设计有所帮助.
-
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数组是否为索引数组的实现方法
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 $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删除特定数组内容并且重建数组索引的方法.
复制代码 代码如下: $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++]=
随机推荐
- jQuery焦点控制图层展示延迟隐藏的方法
- 仅IE6/7/8中innerHTML返回值忽略英文空格的问题
- JS实现的随机排序功能算法示例
- JavaScript必知必会(五) eval 的使用
- MySQL 多表查询实现分析
- 排序算法的javascript实现与讲解(99js手记)
- JavaScript获取页面上某个元素的代码
- 批处理bat根据星期启动程序
- Collections工具类_动力节点Java学院整理
- Linux服务器安全需要注意到几点事项小结
- 鼠标经过出现气泡框的简单实例
- PHP与MongoDB简介|安全|M+PHP应用实例详解
- java中instanceof和getClass()的区别分析
- Spring 多线程下注入bean问题详解
- c#封装百度web服务geocoding api 、百度坐标转换示例
- PHP receiveMail实现收邮件功能
- 抓包工具Fiddler的使用方法详解(Fiddler中文教程)
- Python延时操作实现方法示例
- jQuery实现的监听导航滚动置顶状态功能示例
- vue2 拖动排序 vuedraggable组件的实现