1. 程式人生 > >劍指offer:構建乘積陣列(python)

劍指offer:構建乘積陣列(python)

設有陣列大小為5。
對於第一個for迴圈
第一步:b[0] = 1;
第二步:b[1] = b[0] * a[0] = a[0]
第三步:b[2] = b[1] * a[1] = a[0] * a[1];
第四步:b[3] = b[2] * a[2] = a[0] * a[1] * a[2];
第五步:b[4] = b[3] * a[3] = a[0] * a[1] * a[2] * a[3];
然後對於第二個for迴圈
第一步
temp *= a[4] = a[4]; 
b[3] = b[3] * temp = a[0] * a[1] * a[2] * a[4];
第二步
temp *= a[3] = a[4] * a[3];
b[2] = b[2] * temp = a[0] * a[1] * a[4] * a[3];
第三步
temp *= a[2] = a[4] * a[3] * a[2]; 
b[1] = b[1] * temp = a[0] * a[4] * a[3] * a[2];
第四步
temp *= a[1] = a[4] * a[3] * a[2] * a[1]; 
b[0] = b[0] * temp = a[4] * a[3] * a[2] * a[1];

相關推薦

offer構建乘積陣列python

設有陣列大小為5。對於第一個for迴圈第一步:b[0] = 1;第二步:b[1] = b[0] * a[0] = a[0]第三步:b[2] = b[1] * a[1] = a[0] * a[1];第四步:b[3] = b[2] * a[2] = a[0] * a[1] * a[2];第五步:b[4] = b[

Offer 51. 構建乘積陣列 陣列

題目描述 給定一個數組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]。不能使用除法。 題目地址 https://www.nowcoder.com/practice/94a4d381a

offer構建乘積陣列

題目描述 給定一個數組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]。不能使用除法。 # -*- coding:utf-8 -*- class

offer樹的子結構Python

題目描述 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構) # -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x #

offer構建乘積陣列

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]。不能使用除法。 2.問題描述 假設: // 1 a2 a3 a4 // a1 1 a3

【Java】 offer(66) 構建乘積陣列Offer》Java實現合集 構建乘積陣列Offer》Java實現合集

  本文參考自《劍指offer》一書,程式碼採用Java語言。 更多:《劍指Offer》Java實現合集   題目   給定一個數組A[0, 1, …, n-1],請構建一個數組B[0, 1, …, n-1],其中B中的元素B[i] =A[0]×A[1]×… ×A[i-1

offer 51. 構建乘積陣列

原題 給定一個數組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]。不能使用除法。 Reference Answer 思路分析 沒什麼難度,直

offer》-- 構建乘積陣列、求1+2+3+...+n、不用加減乘除做加法、包含min函式的棧

 一、構建乘積陣列: 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]。不能使用除法。 2、解題思路: B[i]的

[offer] 51. 構建乘積陣列

題目描述 給定一個數組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]。不能使用除法。 思路: 當作一個上三角和下三角,分別用兩個for去乘上三角和下

offer構建乘積數組

給定 class color 所有 [0 一個 com multipl length http://www.cnblogs.com/wxdjss/p/5448990.html 給定一個數組A[0,1,...,n-1],請構建一個數組B[0,1,...,n-1],其中B中

offer13 調整陣列中的偶數到奇數後面

1 冒泡解法 穩定 2 輔助陣列 穩定 3 兩個指標 不穩定 #include <iostream> #include <vector> using namespace std; class solution { public: //冒泡解法 vo

offer】面試題571和為S的數字

題目 輸入一個遞增排序的陣列和一個數字S,在陣列中查詢兩個數,是的他們的和正好是S,如果有多對數字的和等於S,輸出兩個數的乘積最小的。 ps: 對應每個測試案例,輸出兩個數,小的先輸出。 思路

offer】面試題322分行從上到下列印二叉樹

完整程式碼地址 題目 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 思路 用佇列來儲存要列印的節點。 同時我們需要兩個變數:一個變量表示在當前層中還沒有列印的節點數

offer》系列 醜數Java

連結 牛客:醜數 題目描述 把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。 思路 醜叔一定是2 3 或是 5的倍數 i2 i3 i5

Offer-遞迴和迴圈-4

知識點:遞迴和迴圈 題目描述 我們可以用21的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個21的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法? 分析:我們先把2x8的覆蓋方法記為f(8).用第一個2x1的小矩形去覆蓋大矩形的最左邊時有兩種選擇:豎著或者橫著放。當豎著放的時

Offer-遞迴和迴圈-3

知識點:遞迴和迴圈 變態跳臺階 一隻青蛙一次可以跳上一級臺階,也可以跳上2級。。。。。。它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 分析: 舉例子找規律; n=1 : 直接返回1; n=2:1-1 2 返回2; n=3:1-1-1 1-2 2-

offer》系列 替換空格Java

連結 牛客:替換空格 題目描述 請實現一個函式,將一個字串中的每個空格替換成“%20”。例如,當字串為We Are Happy.則經過替換之後的字串為We%20Are%20Happy。 思路 先遍歷一遍

offer》系列 跳臺階Java

連結 牛客:跳臺階 題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 思路 和斐波那契那題類似。 程式碼 public c

offer》系列 矩形覆蓋Java

連結 牛客:矩形覆蓋 題目描述 我們可以用21的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個21的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法? 思路 和跳臺階一模一樣 程式碼 public

offer演算法8 跳臺階JAVA

這個問題歸根結底還是一個費布拉奇數列,仔細找一下規律即可,剛開始做的時候我是直接寫出前六個數的結果來找規律的。 一級臺階:1種 fib(1)=1  二級臺階:2種 fib(2)=2  三級臺階:3種 fib(3)=fib(1)+fib(2)=3  四級臺階:5種 fib(4