给定一个数组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]。不能使用除法。
2016-10-08 15:02
211 查看
// test14.cpp : 定义控制台应用程序的入口点。
//
//
#include "stdafx.h" #include<iostream> #include<string> #include<cctype> #include <vector> #include<exception> #include <initializer_list> using namespace std; class Solution { public: vector<int> multiply(const vector<int>& A) { vector<int> B; int mult=1; for (size_t i = 0; i < A.size(); i++) { for (size_t j = 0; j < A.size(); j++) { if (i != j) mult *= A[j]; } B.push_back(mult); mult = 1; } return B; } }; int main() { Solution so; // vector<int> A = { 1,2,3,4,5,6,7,8,9,10 }; vector<int> A = { 0,1,1,1,1,1,1,1,1,1 }; auto B= so.multiply(A); for (size_t i = 0; i < A.size(); i++) cout << B[i] << " "; cout << endl; return 0; }
相关文章推荐
- 给定一个数组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]。不能使用除法
- 给定一个数组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]。不能使用除法
- 给定一个数组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]。不能使用除法
- 给定一个数组a[N],我们希望构造数组b [N],其中b[j]=a[0]*a[1]…a[N-1] / a[j],在构造过程中,不允许使用除法
- 给定一个数组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]
- 给定一个数组a[N],我们希望构造数组b [N],其中b[j]=a[0]*a[1]…a[N-1] / a[j],在构造过程中,不允许使用除法
- 给定一个数组 a[n], 输出b[n], 其中 b[i] = a[0]*a[1]...*a[i-1]*a[i+1]*....a[n]; 其中不能用除法 复杂度要求O(n)
- C++[算法]给定一个具有100个元素的数组,请对该数组随机赋值1-100,不能出现重复的值
- 给一个整数数组,有正有负。找出数组最大和,条件是使用的元素不能有相邻
- leetcode:java.T018_4Sum---给定一个整数数组,找出a + b + c + d = target的唯一解,不能有重复元素组
- leetcode-java.T015_3Sum---给定一个n个元素的数组,是否存在a,b,c三个元素,使用得a+b+c=0,找出所有符合这个条件的三元组
- 给定一个数组,该数组存贮R,G,B三种字符,将该数组按RGB顺序排序,不能使用辅助内存空间,且只能遍历数组一次。
- 给定一个整数数组,两个数字的返回索引将它们加到一个特定的目标中。 您可以假设每个输入都只有一个解决方案,并且您可能不会两次使用相同的元素。
- 【腾讯2012年实习生笔试加分题】不使用除法,由给定数组a[N]构造数组b [N],其中b[j]=a[0]*a[1]*…*a[N-1] / a[j]
- 4.19构建一个类book,其中含有两个私有数据成员qu和price,建立一个有5个元素的数组对象,将初始化为1~5,将price初始化为qu的10倍1.显示每个对象的qu*price.
- 取值为[1,n-1]含n个元素的整数数组,至少存在一个重复数,即可能存在多个重复数,O(n)时间内找出其中任意一个重复数,不使用额外存储空间。
- (2)int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)
- 给定一个整数数组,其中元素的取值范围为0到10000,求其中出现次数最多的数
- 剑指Offer——构建数组B[i]=A[0]*A[1]*....A[i-1]*A[i+1]*A[i+2]*...A[n-1],不能使用除法
- 对一个数组按给定的下标排序,仅使用两两交换的方式,要求不能对数组进行扩容尽可能使用额外少的空间。原数组为:A,B,C,D,E, 现给定新的位置为3, 0, 1, 4, 2那么排序为D,A,B,E,C