238.出了自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除了 nums[i] 之外其余各元素的乘积 。
题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。
请 不要使用除法,且在 O(n) 时间复杂度内完成此题。
思路
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| package com.wereash.scut_hot100.dp;
import java.util.Scanner;
public class Solution238 { public static void main(String[] args){ Scanner scanner=new Scanner(System.in); String[] str=scanner.nextLine().split(","); int n=str.length; int[] nums=new int[n]; for (int i = 0; i < n; i++) { nums[i]=Integer.parseInt(str[i]); } int[] ans=new int[n]; int pre=1,rear=1; for(int i=0;i<n;i++){ ans[i]=pre; pre*=nums[i]; } for(int i=n-1;i>=0;i--){ ans[i]*=rear; rear*=nums[i]; } for (int i = 0; i < n; i++) { System.out.print(ans[i]+","); } } }
|