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 MYSQL 数据备份类
Jun 19 PHP
用穿越火线快速入门php面向对象
Feb 22 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
基于curl数据采集之正则处理函数get_matches的使用
Apr 28 PHP
PHP使用静态方法的几个注意事项
Sep 16 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
Jan 04 PHP
php加密解密字符串示例
Oct 13 PHP
由php中字符offset特征造成的绕过漏洞详解
Jul 07 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
php实现的rc4加密解密类定义与用法示例
Aug 16 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
Mar 25 PHP
Laravel框架实现多数据库连接操作详解
Jul 12 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
解析dedeCMS验证码的实现代码
2013/06/07 PHP
PHP冒泡算法详解(递归实现)
2014/11/10 PHP
php函数重载的替代方法--伪重载详解
2015/05/08 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
JS 图片缩放效果代码
2010/06/09 Javascript
windows系统下简单nodejs安装及环境配置
2013/01/08 NodeJs
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
vue-router路由参数刷新消失的问题解决方法
2017/06/17 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
在vue-cli项目中使用bootstrap的方法示例
2018/04/21 Javascript
Vue使用NPM方式搭建项目
2018/10/25 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
详解Python中open()函数指定文件打开方式的用法
2016/06/04 Python
详谈Python基础之内置函数和递归
2017/06/21 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
2020/03/06 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
大专学生推荐信范文
2013/11/19 职场文书
环保倡议书
2014/04/14 职场文书
交通事故委托书范本
2014/09/28 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
公司感谢信范文
2015/01/22 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
PyQt5实现多张图片显示并滚动
2021/06/11 Python
python数据可视化使用pyfinance分析证券收益示例详解
2021/11/20 Python