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 相关文章推荐
综合图片计数器
Oct 09 PHP
PHP脚本数据库功能详解(中)
Oct 09 PHP
8个出色的WordPress SEO插件收集
Feb 26 PHP
PHPMYADMIN导入数据最大为2M的解决方法
Apr 23 PHP
php unset全局变量运用问题的深入解析
Jun 17 PHP
解析php下载远程图片函数 可伪造来路
Jun 25 PHP
实例讲解PHP面向对象之多态
Aug 20 PHP
php删除数组中重复元素的方法
Dec 22 PHP
PHP解压tar.gz格式文件的方法
Feb 14 PHP
PHP简单日历实现方法
Jul 20 PHP
PHP封装的PDO数据库操作类实例
Jun 21 PHP
php实现支持中文的文件下载功能示例
Aug 30 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 ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
JavaScript基础重点(必看)
2016/07/09 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
详解一个基于react+webpack的多页面应用配置
2019/01/21 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
JSONObject与JSONArray使用方法解析
2020/09/28 Javascript
[06:16]《DAC最前线》之地区预选赛全面回顾
2015/01/19 DOTA
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
用Python实现web端用户登录和注册功能的教程
2015/04/30 Python
详解Python迭代和迭代器
2016/03/28 Python
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
python对于requests的封装方法详解
2019/01/03 Python
python pygame实现方向键控制小球
2019/05/17 Python
python对csv文件追加写入列的方法
2019/08/01 Python
Pandas实现DataFrame按行求百分数(比例数)
2019/12/27 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
Python之字典添加元素的几种方法
2020/09/30 Python
Python+unittest+requests+excel实现接口自动化测试框架
2020/12/23 Python
优秀员工表扬信
2014/01/17 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
2014年保管员工作总结
2014/11/18 职场文书
志愿者个人总结
2015/03/03 职场文书
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
Mysql开启外网访问
2022/05/15 MySQL