剑指offer 构建乘积数组
题目:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * ... * A[n-1],B[n-1] = A[0] * A[1] * ... * A[n-2];)
代码:
class Solution { public: vector<int> multiply(const vector<int>& A) { int length=A.size(); vector<int> B(length); int temp=1; for(int i=0;i<length;i++){ B[i]=temp; temp*=A[i]; } temp=1; for(int i=length-1;i>=0;i--){ B[i]*=temp; temp*=A[i]; } return B; } };
我的笔记:
将数组计算分为上下两部分进行,第一段迭代计算下三角,第二段迭代计算上三角。
1 | A1 | A2 | ... | An-2 | An-1 |
A0 | 1 | A2 | ... | An-2 | An-1 |
A0 | A1 | 1 | ... | An-2 | An-1 |
A0 | A1 | A2 | 1 | An-2 | An-1 |
A0 | A1 | A2 | ... | 1 | An-1 |
A0 | A1 | A2 | ... | An-2 | 1 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具