长治网上制作网站,荷兰网站开发价格,wordpress 直接连接,济南seo顾问给定长度为 n 的整数数组 nums#xff0c;其中 n 1#xff0c;返回输出数组 output #xff0c;其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。
示例:
输入: [1,2,3,4] 输出: [24,12,8,6] 说明: 请不要使用除法#xff0c;且在 O(n) 时间复杂度内完…
给定长度为 n 的整数数组 nums其中 n 1返回输出数组 output 其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。
示例:
输入: [1,2,3,4] 输出: [24,12,8,6] 说明: 请不要使用除法且在 O(n) 时间复杂度内完成此题。
进阶 你可以在常数空间复杂度内完成这个题目吗 出于对空间复杂度分析的目的输出数组不被视为额外空间。
思路正着乘一遍倒着乘一遍。第i个数字的答案就是正着乘的时候经过他还有倒着乘的时候经过他的两个数相乘。
class Solution {public int[] productExceptSelf(int[] nums) {int[] res new int[nums.length];int p 1, q 1;for (int i 0; i nums.length; i) {res[i] p;p * nums[i];}for (int i nums.length - 1; i 0 ; i--) {q * nums[i];res[i - 1] * q;}return res;}
}