陣列 備忘錄迭代計算乘積

2021-09-11 10:32:57 字數 621 閱讀 6152

給定乙個陣列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[i]的所有元素相乘 ,不能使用除法

思路:通過動態規劃 構建前後2部分的乘積備忘錄陣列,而後相乘即可

(注意一開始存入基礎乘數 1   以及訪問的下標調整 )

class solution {

public:

vectormultiply(const vector& a) {

//可以將最終結果劃分為前後2部分相乘

vectorfirst;

vectorlast;

first.push_back(1);

last.push_back(1);

int length=a.size();

for(int i=0;ib;

for(int i=0;i其中 vector中的back()方法獲取當前陣列最後乙個元素

雲計算 備忘錄

1.雲計算 平台 應用 雲計算部署模式 私有雲,公有雲,混合雲,社群雲 特點 按需提供的服務 服務模式 基礎設施即服務 平台即服務 軟體即服務 雲的本質是作為服務來提供基本的it資源,包括計算能力cpu,記憶體,儲存,網路頻寬 降低使用者採購硬體的成本,提高服務提供商的資源利用率。網路頻寬 不分配外...

備忘錄模式

備忘錄模式 memento 在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原先儲存的狀態。originator 發起人 負責建立乙個備忘錄memento,用以記錄當前時刻它的內部狀態,並可以使用備忘錄恢復內部狀態。originator可根據需要...

備忘錄模式

先從物件導向的三大特徵之一封裝說起。物件導向的封裝簡單點說就是把狀態 資料 和行為 操作這些資料的方法 放到一起,構成乙個單元,通常叫做類。乙個物件的行為是事先確定好的 靜態 一些指令碼,如果物件的狀態相同,物件看起來就是一樣的。所以當我們需要把乙個物件的某一時刻儲存起來,那麼只需要儲存它在那個時刻...