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 相关文章推荐
基于session_unset与session_destroy的区别详解
Jun 03 PHP
php实现的CSS更新类实例
Sep 22 PHP
ThinkPHP 3.2 数据分页代码分享
Oct 14 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
Oct 30 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
Aug 28 PHP
php实现中文转数字
Feb 18 PHP
PHP获取用户访问IP地址的5种方法
May 16 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
Sep 29 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
PHP设计模式之适配器模式原理与用法分析
Apr 25 PHP
PHP中命名空间的使用例子
Mar 22 PHP
php使用pecl方式安装扩展操作示例
Aug 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
对盗链说再见...
2006/10/09 PHP
php函数与传递参数实例分析
2014/11/15 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
PHP实现带进度条的Ajax文件上传功能示例
2019/07/02 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
JavaScript中的style.display属性操作
2013/03/27 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
javascript中callee与caller的区别分析
2015/04/20 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
Python反转序列的方法实例分析
2018/03/21 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
2019/07/19 Python
django如何实现视图重定向
2019/07/24 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
使用CSS3的背景渐变Text Gradient 创建文字颜色渐变
2014/08/19 HTML / CSS
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
用Python写一个for循环的例子
2016/07/19 面试题
自我评价如何写好?
2014/01/05 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
建筑安全责任书范本
2014/07/24 职场文书
小学四年级学生评语
2014/12/26 职场文书
签订劳动合同通知书
2015/04/16 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
2016年五一促销广告语
2016/01/28 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
Win10防火墙白名单怎么设置?Win10添加防火墙白名单方法
2022/04/06 数码科技