给定一个数组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]。不能使用除法。


// 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;
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 Leetcode练习(Python):数组类:第162题:峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。 给定一个数组a[N],我们希望构造数组b[N]。。(2013腾讯实习生笔试题) 对于一个有序数组,我们通常采用二分查找的方式来定位某一元素,请编写二分查找的算法,在数组中查找指定元素。 给定一个整数数组A及它的大小n,同时给定要查找的元素val,请返回它在数组中的位置(从0开始),若不存在该元素,返回-1。若该元素出现多次,请返回第一次出现的位置。 给定一个整数sum,从n个有序的元素的数组中寻找a,b,使得a+b的结果最接近sum,最快的时间复杂度? 现有一个数组A,对于A中的每个元素A[i],都可以进行+K或者-K的操作(每个元素仅能选择加或减一次)。 在这个操作后,我们将得到许多不同版本的数组B。 请找出所有可能的B数组中,数组中最大值与最小值里最小的差值。 python数组操作:将一个数组中前n个元素相加并保存为另一个数组的第n个元素 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3 面试题:给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 刷题3:给定一个数组 nums,判断 nums 中是否存在三个下标 a,b,c数相加等于targe且a,b,c不相等
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM