1. 题目考察的知识点

数组,前缀积

  1. 题目解答方法的文字分析

首先遍历数组,求出数组的所有值的积,然后按照题目说法模拟,ans[i]等于用总积除第i头牛以及它前后两头牛的重量,特别的,i-1<0,i+1>nums.length,pre和last分别赋值为1。

  1. 本题解析所用的编程语言

java

  1. 完整且正确的编程代码
import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @return int整型一维数组
     */
    public int[] productExceptSelf (int[] nums) {
        int total = 1;
        int[] ans = new int[nums.length];
       //求出总积
       for(int i=0;i<nums.length;i++){
          total*=nums[i];
       }
      //按照题目说法模拟,用总积除第i头牛以及它前后两头牛的重量,特别的,i-1<0,i+1>nums.length,pre和last分别赋值为1。
       for(int i=0;i<nums.length;i++){
        int pre = 1,last=1;
          if(i-1>=0){
             pre=nums[i-1];
          }
          if(i+1<nums.length){
             last=nums[i+1];
          }
          ans[i] = total/(pre*last*nums[i]);
       }
       return ans;
    }
}