美文网首页
前缀积、后缀积

前缀积、后缀积

作者: 编程不要键盘 | 来源:发表于2019-07-29 13:59 被阅读0次
给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。

示例:

输入: [1,2,3,4]
输出: [24,12,8,6]
说明: 请不要使用除法,你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组不被视为额外空间。)

一开始想到用两个数组分别保存从左右两边乘过来的数字,其实可以优化成直接在res数组计算
因为

  res[i] = 左边积 * 右边积

代码如下:

public int[] productExceptSelf(int[] nums) {
        int[] res = new int[nums.length];
        int k = 1;
        for(int i = 0; i < res.length; i++){
            res[i] = k;
            k = k * nums[i]; // 此时数组存储的是除去当前元素左边的元素乘积
        }
        k = 1;
        for(int i = res.length - 1; i >= 0; i--){
            res[i] *= k; // k为该数右边的乘积。
            k *= nums[i]; // 此时数组等于左边的 * 该数右边的。
        }
        return res;
    }

相关文章

  • 前缀积、后缀积

    一开始想到用两个数组分别保存从左右两边乘过来的数字,其实可以优化成直接在res数组计算因为 代码如下:

  • 主动性

    主动的英文是Initiative。前缀词 Initi (initial 最初的)+ ative (active 积...

  • Simplingua简语附录1-词缀

    一、自然前缀 二、能产前缀 三、自然后缀 四、能产后缀:词尾型后缀(元音开头的后缀) 注:后缀-ánia与-eta...

  • 7.19-经典难问题总结

    1. 前缀,后缀和中缀之间相互转换 中缀表示转前缀/后缀(附代码)针对负数的情况前缀/中缀/后缀相互转换 2. T...

  • 史上最全英语后缀

    前一篇列举完前缀,这篇开始后缀。讲真,后缀比前缀有意思多了。 前缀一般不改变词根词性,但是也有例外。后缀则不然,后...

  • Java - 操作符

    1 前缀式和后缀式 对于前缀式 ++i : 对于后缀式 i++ : 2 ==和equal == 和 !...

  • 万病五积:寒积,食积,气积,血积,痰积

    人生活在自然环境之中,受外界多种因素的影响,体内时刻进行代谢,产生一些垃圾。很多时候,在内外作用下,加上人们有时不...

  • 点积,叉积

    点积公式为: 再结合余弦曲线可以知道: 当夹角在[0,90], [270, 360]区间内,cosx > 0当夹角...

  • 积攒了近十天的情感中午要爆发了,大吉给小倪打电话,但没有人接听。她怎么了,不会有什么事吧,再等等!大吉担心坏了

  • 少年不识愁滋味,为赋新词强说愁,对于你,永远不愿详说,更怕别人提起。不去主动见你,不去联系你,以为这样就可以忘记了...

网友评论

      本文标题:前缀积、后缀积

      本文链接:https://www.haomeiwen.com/subject/wdlbrctx.html