• 除自身以外数组的乘积


    /**
     * @param {number[]} nums
     * @return {number[]}
     */
    var productExceptSelf = function(nums) {
        let left = []
        left[0] = 1;
        let right = []
        right[nums.length-1] = 1
        for(let i=1;i<nums.length;i++){
            left[i] = left[i-1]*nums[i-1];
        }
        for(let j=nums.length-2;j>=0;j--){
            right[j] = right[j+1]*nums[j+1]
        }
        let temp = []
        for(let k=0;k<nums.length;k++){
            temp[k] = left[k]*right[k]
        }
        return temp
    };
    

    主要的方式:nums[i]对应的乘积就是其前缀和后缀相乘之后的数据,那么如何确定前缀和后缀呢,前缀就是(前一位数据前一位数据的前缀) ,后缀就是(后一位数据后一位数据的后缀),最前面和最后面的前缀及后缀都是1

    var productExceptSelf = function(nums) {
        let answer = []
        answer[0] =1
        for(let i=1;i<nums.length;i++){
            answer[i] = answer[i-1]*nums[i-1]; //当前元素的前缀的乘积 = 当前元素的前一位元素 * 前一位元素的前缀 
        }
        let R =1;
        for(let j=nums.length-1;j>=0;j--){
            answer[j] = R * answer[j]  //  当前元素乘积 = 当前元素前缀*当前元素后缀
            R = R * nums[j] //下一元素的后缀 = 当前的后缀 * 当前元素 
        }
        return answer
    };
    

    主要是方式:当前方法主要是为了降低时间和空间上所消耗的资源。
    来源:https://leetcode-cn.com/problems/product-of-array-except-self/

  • 相关阅读:
    完全N叉树寻找祖先
    MySql_Front新建数据库遇到访问地址冲突问题
    C++金额的中文大写
    STL_sort cmp
    螺旋数组
    ~
    Struts向JSP中传值
    Struts1-配置文件部分
    jQuery Ajax 的 load()方式
    jquery animate
  • 原文地址:https://www.cnblogs.com/panjingshuang/p/13138148.html
Copyright © 2020-2023  润新知