php实现构建排除当前元素的乘积数组方法
构建乘积数组
给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。
- 这题的意思是 B数组的元素是A数组中所有元素的乘积,但是要排除掉当前元素
- A数组在i元素左右分成两部分,分别相乘
- left数组是 A[0]...A[n-1], right数组是A[1]...A[n]
- 组合出新的数组
$A=array(1,2,3,4); multiply($A); function multiply($numbers){ $len=count($numbers); $res=array(); //1. 组合左边数组 $left=array(); $left[0]=1; for($i=1;$i<$len;$i++){ $left[$i]=$left[$i-1]*$numbers[$i-1]; } //2. 组合右边数组 $right=array(); $right[$len-1]=1; for($j=$len-2;$j>=0;$j--){ $right[$j]=$right[$j+1]*$numbers[$j+1]; } //3. 组合新数组,整好可以实现A[0]*A[i-1]*A[i+1]*A[n-1]排除当前i元素 for($i=0;$i<$len;$i++){ $res[$i]=$left[$i]*$right[$i]; } return $res; }
相关推荐
-
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
本文实例讲述了PHP计算数组中值的和与乘积的方法.分享给大家供大家参考,具体如下: 一.概述: array_sum() 函数用于计算数组中所有值的和. array_product() 函数用于计算数组中所有值的乘积. 二.使用示例: array_sum() PHP array_sum() 函数用于计算数组中所有值的和,以整数或浮点数返回计算结果,非数字的单元将视作 0 . 语法: number array_sum( array array ) 例子: <?php $arr_a = array(1
-
php实现构建排除当前元素的乘积数组方法
构建乘积数组 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1].不能使用除法. 这题的意思是 B数组的元素是A数组中所有元素的乘积,但是要排除掉当前元素 A数组在i元素左右分成两部分,分别相乘 left数组是 A[0]...A[n-1], right数组是A[1]...A[n] 组合出新的数组 $A=array(1,2,3,4); multiply($A);
-
Java构建乘积数组的方法
本文实例为大家分享了Java构建乘积数组的具体实现代码,供大家参考,具体内容如下 给定一个数组A[0,1,-,n-1],请构建一个数组B[0,1,-,n-1],其中B中的元素B[i]=A[0]A[1]-A[i-1]*A[i+1]-*A[n-1]. 不能使用除法. 代码 解法一 暴力法,这是本能就能想到的解决办法. public static int[] multiply(int[] array) { if (array == null) { return null; } int len = ar
-
python 求一个列表中所有元素的乘积实例
如下所示: # 求一个列表中所有元素的乘积 from functools import reduce lt = [1,2,3,4,5] ln = reduce(lambda x,y:x * y,lt) print(ln) 以上这篇python 求一个列表中所有元素的乘积实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
python求列表对应元素的乘积和的实现
那天偶尔看到看到一个小问题:两个不等长列表a=[1,2,3],b=[4,5,6,7],求它们对应元素的乘积的和. 我一开始想到的方法就是选择更小数组作为循环长度然后相乘求和: a = [1,2,3] b = [4,5,6,7] sum = 0 for i in range(0,min(len(a),len(b))): number += a[i]*b[i] print(sum) 但是后来我想到了一种更为巧妙的方法,利用函数zip(): a = [1,2,3] b = [4,5,6,7] all
-
python计算列表元素与乘积详情
目录 插入代码块 列表乘积计算 插入代码块 使用sum函数: numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(sum(numbers)) 使用reduce函数: # 方式1 from functools import reduce numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] results = reduce(lambda x, y: x + y, numbers) print(results) # 方式2 f
-
AngularJS实现给动态生成的元素绑定事件的方法
本文实例讲述了AngularJS实现给动态生成的元素绑定事件的方法.分享给大家供大家参考,具体如下: 1 . 我们知道在jQuery中,动态生成一个元素,如果要在动态生成元素的同时,动态绑定事件,可以通过live/on方法(在jquery3.0中已经废除了bind方法). 2 . 在AngularJS中,操作DOM一般在指令中完成,事件监听机制是在对于已经静态生成的dom绑定事件,而如果在指令中动态生成了DOM节点,动态生成的节点不会被JS事件监听. 举例来说: angular.module('
-
js通过指定下标或指定元素进行删除数组的实例
实例如下: 删除指定下标数组元素 Array.prototype.del=function(index){ if(isNaN(index)||index>=this.length){ return false; } for(var i=0,n=0;i<this.length;i++){ if(this[i]!=this[index]){ this[n++]=this[i]; } } this.length-=1; }; 删除指定元素 Array.prototype.indexOf = func
-
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
CSS伪元素(pseudo-elements)非常的有用--你可以用它制作出CSS三角形,用在提示框上面,还可以用它完成很多简单的任务,而不需要多余的HTML元素.以前,伪元素的CSS属性是无法用JavaScript获取的,但现在,有了一个新的JavaScript方法可以访问它们! 假设你的CSS代码是这样的: 复制代码 代码如下: .element:before { content: 'NEW'; color: rgb(255, 0, 0); } 为了获取.element:before里的
-
python追加元素到列表的方法
本文实例讲述了python追加元素到列表的方法.分享给大家供大家参考.具体实现方法如下: scores = ["1","2","3"] # add a score score = int(raw_input("What score did you get?: ")) scores.append(score) # list high-score table for score in scores: print score 运行结
-
jQuery实现在新增加的元素上添加事件方法案例分析
本文实例讲述了jQuery实现在新增加的元素上添加事件方法.分享给大家供大家参考,具体如下: 最近项目组需要在新增的元素上增加时间,有人说用live方法后来使用的时候发现jQuery没有该方法(1.7以上就没了)替换为on 除了jquery api官方的例子外还有以下的例子可以在新增的元素上添加事件 $(document).on("click",'#lyysb a',function(){ if(!$(this).hasClass('cur')){ $(this).addClass('
随机推荐
- AngularJS实现给动态生成的元素绑定事件的方法
- android TextView设置中文字体加粗实现方法
- jsp提交到Servlet报404错误问题解决(webroot下子目录)
- C++中vector容器的用法
- 详解Spring-Boot集成Spring session并存入redis
- 利用Python爬取可用的代理IP
- php中的静态变量的基本用法
- bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
- 后台实时分流文件的shell脚本
- 做了CDN加速的ASP网站获取用户真实IP程序
- 使用Ruby程序实现web信息抓取的教程
- JS 常用校验函数
- 浅析使用Python操作文件
- Android实现点击两次返回键退出
- java中FileOutputStream中文乱码问题解决办法
- Winform基于多线程实现每隔1分钟执行一段代码
- KesionCMS V4.x部份最常用的标签清单
- Angular实现双向折叠列表组件的示例代码
- VBS基础篇 Err对象
- 详谈springboot过滤器和拦截器的实现及区别