加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

[PHP] 算法-构建排除当前元素的乘积数组的PHP实现

发布时间:2020-05-25 03:10:29 所属栏目: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]。不能使用除法。1. 这题的意思是 B数组的元素是A数组中所有元素的乘积,但是要排除掉当前元素2. A数组在i元素左右分成两部

构建乘积数组给定一个数组A[0,1,...,n-1],请构建一个数组B[0,其中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. 组合出新的数组

<div class="cnblogs_code">

=(1,2,3,4 multiply(=(=
        =[0]=1(=1;<;++[]=[-1]*[-1    </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;2. 组合右边数组</span>
    <span style="color: #800080"&gt;$right</span>=<span style="color: #0000ff"&gt;array</span><span style="color: #000000"&gt;();
    </span><span style="color: #800080"&gt;$right</span>[<span style="color: #800080"&gt;$len</span>-1]=1<span style="color: #000000"&gt;;
    </span><span style="color: #0000ff"&gt;for</span>(<span style="color: #800080"&gt;$j</span>=<span style="color: #800080"&gt;$len</span>-2;<span style="color: #800080"&gt;$j</span>>=0;<span style="color: #800080"&gt;$j</span>--<span style="color: #000000"&gt;){
            </span><span style="color: #800080"&gt;$right</span>[<span style="color: #800080"&gt;$j</span>]=<span style="color: #800080"&gt;$right</span>[<span style="color: #800080"&gt;$j</span>+1]*<span style="color: #800080"&gt;$numbers</span>[<span style="color: #800080"&gt;$j</span>+1<span style="color: #000000"&gt;];
    }   

    </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;3. 组合新数组,整好可以实现A[0]*A[i-1]*A[i+1]*A[n-1]排除当前i元素</span>
    <span style="color: #0000ff"&gt;for</span>(<span style="color: #800080"&gt;$i</span>=0;<span style="color: #800080"&gt;$i</span><<span style="color: #800080"&gt;$len</span>;<span style="color: #800080"&gt;$i</span>++<span style="color: #000000"&gt;){
            </span><span style="color: #800080"&gt;$res</span>[<span style="color: #800080"&gt;$i</span>]=<span style="color: #800080"&gt;$left</span>[<span style="color: #800080"&gt;$i</span>]*<span style="color: #800080"&gt;$right</span>[<span style="color: #800080"&gt;$i</span><span style="color: #000000"&gt;];
    }   
    </span><span style="color: #0000ff"&gt;return</span> <span style="color: #800080"&gt;$res</span><span style="color: #000000"&gt;;

}

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读