zoukankan      html  css  js  c++  java
  • LeetCode OJ 238. Product of Array Except Self 解题报告

        题目链接:https://leetcode.com/problems/product-of-array-except-self/

    238. Product of Array Except Self

    My Submissions
    Total Accepted: 36393 Total Submissions: 87262 Difficulty: Medium

    Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].

    Solve it without division and in O(n).

    For example, given [1,2,3,4], return [24,12,8,6].

    Follow up:
    Could you solve it with constant space complexity? (Note: The output array does not count as extra space for the purpose of space complexity analysis.)

    Subscribe to see which companies asked this question

    Show Tags
    Show Similar Problems
    Have you met this question in a real interview?

     

    Yes
     
    No

    Discuss


        给出一个数组,要求计算一个新数组。数组里全部的元素都是除了自己以外的元素乘积。而且要求不许用除法。

        《编程之美》上的一道原题。创建两个辅助数组。一个保存全部左边元素乘积的结果。一个保存全部右边元素乘积的结果。借助这两个数组,一次遍历就能够得到结果。

        我的AC代码

    public class ProductofArrayExceptSelf {
    
    	public static void main(String[] args) {
    		int[] a = { 1, 2, 3, 4 };
    		System.out.print(Arrays.toString((productExceptSelf(a))));
    	}
    
    	public static int[] productExceptSelf(int[] nums) {
    		int len = nums.length;
    		int[] r = new int[len];
    
    		int[] left = new int[len];
    		int[] right = new int[len];
    		left[0] = nums[0];
    		for (int i = 1; i < len; i++) {
    			left[i] = left[i - 1] * nums[i];
    		}
    		right[len - 1] = nums[len - 1];
    		for (int i = len - 2; i >= 0; i--) {
    			right[i] = right[i + 1] * nums[i];
    		}
    
    		r[0] = right[1];
    		r[len - 1] = left[len - 2];
    		for (int i = 1; i < len - 1; i++) {
    			r[i] = left[i - 1] * right[i + 1];
    		}
    		return r;
    	}
    }
    


  • 相关阅读:
    垃圾收集器与内存分配策略(二)之垃圾收集算法
    组合与继承
    垃圾收集器与内存分配策略(一)之对象存活判断
    虚拟机中对象的创建、内存布局、访问
    Java运行时数据区域划分
    Java操作excel表格
    位段
    sh -s用法
    ubutu14.04选中文本就会删除问题解决
    java容器-List
  • 原文地址:https://www.cnblogs.com/llguanli/p/8946640.html
Copyright © 2011-2022 走看看