提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
4月8日练习内容
提示:以下是本篇文章正文内容,下面案例可供参考
一、题目-除自身以外数组的乘积
1.题目描述
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。
题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。
请不要使用除法,且在 O(n) 时间复杂度内完成此题。
示例 1:
输入: nums = [1,2,3,4]
输出: [24,12,8,6]
示例 2:
输入: nums = [-1,1,0,-3,3]
输出: [0,0,9,0,0]
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/product-of-array-except-self
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2.思路与代码
2.1 思路
1.先判断数组是否为空,或者数组长度是否为0
2.创建与输入数组长度一致的数组
3.计算当前元素左边的所有元素乘积(不包含当前元素)
4.计算当前元素右边的乘积
5.左边与右边相乘就是所有元素的乘积
2.2 代码
代码如下(示例):
class Solution {
public int[] productExceptSelf(int[] nums) {
//判断条件
if(nums == null || nums.length == 0){
return nums;
}
//输出数组
int[] arr = new int[nums.length];
arr[0] = 1;
for(int i = 1;i < arr.length;i ++){
arr[i] = nums[i - 1] * arr[i - 1];
}
int right = 1;
for(int i = nums.length - 1;i >= 0;i --){
arr[i] *= right;
right *= nums[i];
}
return arr;
}
}
总结
提示:这里对文章进行总结: