php实现构建排除当前元素的乘积数组方法


Posted in PHP onOctober 06, 2018

构建乘积数组

给定一个数组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]。不能使用除法。

  1. 这题的意思是 B数组的元素是A数组中所有元素的乘积,但是要排除掉当前元素
  2. A数组在i元素左右分成两部分,分别相乘
  3. left数组是 A[0]...A[n-1], right数组是A[1]...A[n]
  4. 组合出新的数组
$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 相关文章推荐
基于PHP一些十分严重的缺陷详解
Jun 03 PHP
360通用php防护代码(使用操作详解)
Jun 18 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
Oct 26 PHP
smarty内置函数section的用法
Jan 22 PHP
PHP实现的简单分页类及用法示例
May 06 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
Mar 15 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
PHP PDOStatement::closeCursor讲解
Jan 30 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
Jan 26 PHP
Laravel框架源码解析之模型Model原理与用法解析
May 14 PHP
PHP 实现链式操作
Mar 09 PHP
php微信公众号开发之微信企业付款给个人
Oct 04 #PHP
PHP获取当前系统时间的方法小结
Oct 03 #PHP
PHP格式化显示时间date()函数代码
Oct 03 #PHP
php实现微信企业转账功能
Oct 02 #PHP
PHP实现微信退款功能
Oct 02 #PHP
PHP实现微信申请退款功能
Oct 01 #PHP
微信企业转账之入口类分装php代码
Oct 01 #PHP
You might like
PHP的中问验证码
2006/11/25 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2011/12/05 PHP
PHP实现根据时间戳获取周几的方法
2016/02/26 PHP
JavaScript 小型打飞机游戏实现原理说明
2010/10/28 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
jQuery表格(Table)基本操作实例分析
2017/03/10 Javascript
原生JS实现N级菜单的代码
2017/05/21 Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
2019/05/06 Javascript
koa中间件核心(koa-compose)源码解读分析
2020/06/15 Javascript
Python解析xml中dom元素的方法
2015/03/12 Python
编写简单的Python程序来判断文本的语种
2015/04/07 Python
python读取word文档的方法
2015/05/09 Python
Python2中的raw_input() 与 input()
2015/06/12 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
2018/06/09 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
Python批量删除mysql中千万级大量数据的脚本分享
2020/12/03 Python
CSS3实现可翻转的hover效果
2018/05/23 HTML / CSS
Whistles官网:英国女装品牌
2020/08/14 全球购物
电子信息毕业生自荐信
2013/11/16 职场文书
小学运动会表扬稿
2014/01/19 职场文书
减负增效提质方案
2014/05/23 职场文书
夏季药店促销方案
2014/08/22 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
2015年幼儿园后勤工作总结
2015/04/25 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
Golang之sync.Pool使用详解
2021/05/06 Golang
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang