怎么推广自己的公司网站做公司网站好处
怎么推广自己的公司网站,做公司网站好处,天津建站管理系统价格,网站用哪些系统做的好处题目238.除了自身以外数组的乘积给你一个整数数组 nums#xff0c;返回数组 answer #xff0c;其中 answer[i] 等于 nums 中除了 nums[i] 之外其余各元素的乘积 。题目数据保证数组nums之中任意元素的全部前缀元素和后缀的乘积都在32位 整数范围内。要求请不要使用除法…题目238.除了自身以外数组的乘积给你一个整数数组 nums返回数组 answer其中 answer[i] 等于 nums 中除了 nums[i] 之外其余各元素的乘积 。题目数据保证数组nums之中任意元素的全部前缀元素和后缀的乘积都在32位 整数范围内。要求请不要使用除法且在 O(n) 时间复杂度内完成此题。进阶版在O(1)的额外空间复杂度内完成这道题示例输入: nums [1,2,3,4]输出: [24,12,8,6]思路大家会第一时间想到先算出所有元素的总乘积再for循环内除以自身就得出除自身外的各元素乘积但是题目要求里面说不能使用除法因此我们要想其他办法在数据结构算法当中最重要的一个思想是分治思想把大问题拆成小问题分别解决再合并结果。因此我们可以根据不算入乘积的元素分成左边乘积和右边乘积最后再将其相乘。因此我们把每个元素的左边乘积统一放在一个left [ ] 数组中右边乘积放在right [ ] 数组中最终只需要用到for循环将其对应的左边乘积和右边乘积相乘。要求返回数组因此相乘之后放入answer[]数组中。这里还想再详细的说一下如何实现每个元素的左边乘积放在数组里面呢很简单就是下标为0的元素左边没有元素因此设left[0]为1下标为1的元素左边只有一个那么设left[1]为left[0]*nums[0]以此类推得到规律为left[i]left[i-1]*nums[i-1];实现代码class Solution { public int[] productExceptSelf(int[] nums) { int lengthnums.length; int[] leftnew int[length]; int[] rightnew int[length]; int[] answernew int[length]; //左边乘积 left[0]1; for(int i1;ilength;i){ left[i]left[i-1]*nums[i-1]; } //右边乘积 right[length-1]1; for(int jlength-2;j0;j--){ right[j]right[j1]*nums[j1]; } //最终乘积 for(int i0;ilength;i){ answer[i]left[i]*right[i]; } return answer; } }小舟有话说针对算法题大家刚开始不会不要紧只要多刷题就行不要着急否定自己哦我后续会一直更新这个算法题请大家多多支持如果觉得喜欢的话关注我下次找我不迷路~