本文主要是介绍leetcode 234 除自身以外数组的乘积,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:
给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。
说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。思路:建立两个数组 分别存储左,右两边除当前数字的累积乘。代码(java):public int[] solution(int[] nums) {int[] result = new int[nums.length];int[] leftArray = new int[nums.length];int[] rightArray = new int[nums.length];leftArray[0] = 1;rightArray[0] = 1;for (int i = 1; i < leftArray.length; i++) {leftArray[i] = leftArray[i-1]*nums[i-1];}for (int i = 1; i < rightArray.length; i++) {rightArray[i] = rightArray[i-1]*nums[nums.length-i];}for (int i = 0; i < nums.length; i++) { result[i] = rightArray[rightArray.length-i-1]*leftArray[i]; }return result;}
这篇关于leetcode 234 除自身以外数组的乘积的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!