剑指Offer - 面试题66. 构建乘积数组(正反遍历)
1. 题目
给定一个数组 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]
。不能使用除法。
示例:
输入: [1,2,3,4,5]
输出: [120,60,40,30,24]提示:
所有元素乘积之和不会溢出 32 位整数
a.length <= 100000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/gou-jian-cheng-ji-shu-zu-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 正向扫描获取每个数左侧的乘积
- 反向扫描获取每个数右侧的乘积
- 最后扫描一遍得到除自身外的两侧乘积相乘
class Solution {public:vector<int> constructArr(vector<int>& a) {int n = a.size(), i, product = 1;vector<int> left(n,1), right(n,1);for(i = 1; i < n; ++i){product *= a[i-1];left[i] = product;}product = 1;for(i = n-2; i >= 0; i--){product *= a[i+1];right[i] = product;}vector<int> ans(n);for(i = 0; i < n; ++i)ans[i] = left[i]*right[i];return ans;}
};
剑指Offer - 面试题66. 构建乘积数组(正反遍历)相关推荐
- 剑指offer面试题66. 构建乘积数组
题目描述 给定一个数组 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].不能使用 ...
- 【有返回值的回溯法】剑指offer——面试题66:矩阵中的路径(回溯法)
剑指offer--面试题66:矩阵中的路径(回溯法) Solution:1 典型的回溯算法及代码 此题是回溯法的典型例题,思路以及代码均是书中所讲.要具体实现很有参考价值,借鉴之! 现在把书中代码贴在 ...
- 剑指offer 面试题三 找出数组中重复的数字
1 import org.junit.Test; 2 3 import java.util.Arrays; 4 import java.util.HashSet; 5 6 public class D ...
- 剑指offer——面试题33:把数组排成最小数
剑指offer–面试题33:把数组排成最小数 Solution1: 20180904复习.重点记忆比较技巧!!! 代码参考网址:https://www.nowcoder.com/profile/416 ...
- 剑指offer——面试题14:调整数组顺序使奇数位于偶数前面
剑指offer--面试题14:调整数组顺序使奇数位于偶数前面 Solution1: 顺序交换,比较好的算法!!! class Solution { public:void reOrderArray(v ...
- 剑指offer——面试题8:旋转数组的最小数字
剑指offer--面试题8:旋转数组的最小数字 Solution1: 自己想的复杂度为O(n)O(n)O(n)的算法,若用二分查找则: 1.代码复杂:2.最坏情况下的二分查找的时间复杂度亦为O(n)O ...
- 两个数组中对应的下标的值合成一个新的数组_剑指 offer 面试题精选图解 03 . 数组中重复的数字
今天分享的题目来源于 LeetCode 上的剑指 Offer 系列 面试题03. 数组中重复的数字. 题目链接:https://leetcode-cn.com/problems/shu-zu-zhon ...
- [剑指offer]面试题8:旋转数组的最小数字
面试题8:旋转数组的最小数字 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2 ...
- 剑指offer 面试题3—二维数组中找数
题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 基本思想: 首先选取数组 ...
最新文章
- CentOS 7 的初始化
- 如何利用Partitioner将消息路由到分区?
- jakarta_MicroProfile在Jakarta EE时代的作用
- 团购网站的兴衰与启示
- PCRE接口pcre_fullinfo混合子模式调用结果
- 老司机带你重构Android的v4包的部分源码
- android webview sql database,websql在openDatabase报version mismatch错误,请问怎么解决?
- void ,NULL与0的区别联系
- macOS的控制台Console.app
- (转)在编写Spring框架的配置文件时,标签无提示符的解决办法
- bzoj 1716 找零钱
- html ie浏览器写入内容,js在IE下创建本地文件,并读取内容
- php表单yii2,yii2教程-ActiveForm表单组件
- vuex的store机制1
- 深度篇——目标检测史(五) 细说 SSD 目标检测
- 浅谈激光导航对机器人自主行走的重要性
- CCS 报警告 #10247-D
- Java英语单词(5000个)
- 单元测试中不能加入参数
- JSP与JavaBeans
热门文章
- linux中的信号1——信号概述
- 计算机统考分数短信显示合格,今年起全省八年级网考信息技术 成绩不合格不能升高中...
- python3进阶开发-第一个仿博客园的项目(1)
- BZOJ1876 [SDOI2009]SuperGCD 【高精 + GCD优化】
- 使用二分查找向一个有序数组中插入一个数据
- Google-优秀移动站点设计10招
- android客户端在多个界面切换时保持socket的链接的实例
- 软件测试课程学习总结
- 在mojoportal项目中发邮件使用的是dotnetopenmail
- ADO.NET、ODP.NET、Linq to SQL、ADO.NET Entity 、NHibernate在Oracle下的性能比较