【leetcode238】Product of Array Except Self
题目:对数组中的每个元素求除自身外的其他元素的乘积
要求:
不能用除法(直接排除了一般思路)
时间复杂度要求线性(排除了遍历依次求解的方法)
空间复杂度要求:额外空间为常数个
思路:
考虑了1,2条要求之后,能想到的方法就是re[i]为num[i]左边的i-1个数的累积乘以右边的n-i个数的累积,比如我们可以设为
re[i] = left[i] * right[i]
由于left[i + 1] = left[i] num[i], right[i] = right[i + 1] num[i],可见在线性时间内完成是可行的。
但是,这样会产生2n的额外空间消耗。我们可以考虑,先将计算的left直接存储在结果数组res中,而与此同时,由于right数组有right[i] = right[i + 1] num[i]这样的性质,因而可以将其用一个变量代替,在求解过程中不断更新即可。
代码:
class Solution(object):def productExceptSelf(self, nums):n = len(nums)res = [1] * ntemp = 1for i in range(0, n - 1):res[i + 1] = res[i] * nums[i]for i in range(n - 1, 0, -1):res[i] *= temptemp *= nums[i]res[0] = res[0] * tempreturn res
【leetcode238】Product of Array Except Self相关推荐
- 【 MATLAB 】sort ( Sort array elements )
sort Sort array elements Syntax B = sort(A) B = sort(A,dim) B = sort(___,direction) B = sort(___,Nam ...
- 【C++】40. std::array与int a[]方式创建数组的区别
C++11中std::array的使用 std::array<type,size> array1; std::array<int,3> array1和 int a[]={1,2 ...
- 【备忘录】Product cost collectors – 成本收集器
以生产角度来划分: 流程制造 - Product Cost by Period 离散制造 - Product Cost by Period & Product Cost by Order 这里 ...
- 【Todo】【转载】Scala中Array, List, Tuple的区别
参考了这篇文章: https://my.oschina.net/u/1034176/blog/512314 1. 在Scala 2.7中,Array.List都不能混合类型,只有Tuple可以:而在S ...
- 【JavaScript】JS的Array的用法总结
目录 Array的长度相关问题 indexOf取元素下标 slice操作 push和pop操作 unshift和shift操作 sort操作 reverse操作 spilce操作 concat函数 j ...
- 【leetcode】Merge Sorted Array
题目描述 Given two sorted integer arrays A and B, merge B into A as one sorted array. Note: You may assu ...
- 【quartus】packed unpacked array
问题描述: packed array和 unpacked array,是我在SV里学到的概念. 但是在quartus syn的时候,会报错. 解决方法: 1. packed array的概念 2.以s ...
- 【20211123】【Python】修改list/array中的某些数值时,报错TypeError: can only assign an iterable,原因分析及正确的操作方式
一.提个需求先~ 有一个列表 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],现在想要修改其中的 ...
- 【Leetcode】Shuffle an Array
题目链接:https://leetcode.com/problems/shuffle-an-array/ 题目: Shuffle a set of numbers without duplicates ...
最新文章
- Spring AOP的一些概念
- ucos操作系统的内核有哪些调度方法
- 【Linux网络】Linux Socket编程 TCP协议
- 李林APUE之进程的封装
- 天气预报今天几点下雨_今天,秦皇岛多家景区临时闭园!最新天气预报发布
- pytorch查看模型的可训练参数
- 最近很火的夏日便捷小空调源码(小程序版)
- 201521123050 《Java程序设计》第13周学习总结
- 解决ImageLoader加载HTTPS图片证书校验异常问题
- 工厂设计模式——抽象工厂
- 触发器及其应用实验报告总结_带你了解IGBT驱动电路的应用
- java布尔类型 向上转型_JAVA_多态性演示a____自动向上转型、向下转型、检查对象是否为某个类型(instanceof)...
- 华硕电脑的触摸板关闭
- 数字通信技术知识点一
- gcforest 深度森林原理及实现
- 将EXCEL自定义时间格式转换为时间格式
- 25个很酷的jQuery倒计时脚本–添加动态计数器!
- Wireshark之流量包分析+日志分析 (护网:蓝队)web安全 取证 分析黑客攻击流程(上篇)
- oracle datafile损坏,Oracle某个数据文件损坏,如何打开数据_oracle
- G1D5-Intriguing properties of neural networks