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