劍指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]。不能使用除法。
思路:最簡單粗暴的方法,O(n2)複雜度
# -*- coding:utf-8 -*-
class Solution:
def multiply(self, A):
# write code here
B=[]
B=A[:]
for j in range(len(A)):
temp=1
for i, val in enumerate(A):
if i!=j:
temp=temp*val
B[j]=temp
return B
更優解法建矩陣,未完待續.......
相關推薦
劍指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]。不能使用除法。 思路:最簡單粗暴的方法,O(n2)複雜度 # -*- coding:utf
劍指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]。不能使用除法。 //解題思路就跟劍指offer上的解題思路一致,將Bn擴充套件為一個左
劍指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]。不能使用除法 解題思路 B[i]的值可以看作上圖的矩陣中每行的乘積。 每個B[i]都可
劍指offer 構建乘積陣列 python
題目描述 給定一個數組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[1,2,3,4,5] B[120,60,40,30,24] 想法
劍指Offer - 構建乘積陣列(Java實現)
題目描述: 給定一個數組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]。不能使用除法。 思路分析: 陣列B每個位置的值就是陣列A中除了同一位置上的那個數,陣列中剩下的數
劍指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]。不能使用除法。 方法一:前後分離相乘 class Solution { public: &n
51、劍指offer--構建乘積數組
left tor return 劍指offer tex -s ace line vector 題目描述 給定一個數組A[0,1,...,n-1],請構建一個數組B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*..
劍指offer---構建乘積數組
log 數組 ply div multi clas nbsp blog offer class Solution { public: vector<int> multiply(const vector<int>& A)
劍指offer-構建乘積數組
import ont nbsp i+1 構建 pub public 代碼 AR 題目描述:給定一個數組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
[劍指offer] --7.旋轉陣列的最小數字
題目描述 把一個數組最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。 輸入一個非減排序的陣列的一個旋轉,輸出旋轉陣列的最小元素。 例如陣列{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該陣列的最小值為1。 NOTE:給出的所有元素都大於0,若陣列大小為0,請返回0。
[劍指offer]連續子陣列的最大和
本博文引自:http://blog.csdn.net/u014458048/article/details/54971991 題目描述: 輸入一個整形陣列,數組裡有正數也有負數。 陣列中連續的一個或多個整陣列成一個子陣列,每個子陣列都有一個和。求所有子陣列的和的
【劍指Offer】26陣列中出現次數超過一半的數字
題目描述 陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入一個長度為9的陣列{1,2,3,2,2,2,5,4,2}。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。 時間限制:1秒;空間限制:32768K;本題知識點:陣列 解題思路
【Java】 劍指offer(53-3) 陣列中數值和下標相等的元素 《劍指Offer》Java實現合集 《劍指Offer》Java實現合集
本文參考自《劍指offer》一書,程式碼採用Java語言。 更多:《劍指Offer》Java實現合集 題目 假設一個單調遞增的數組裡的每個元素都是整數並且是唯一的。請程式設計實現一個函式找出陣列中任意一個數值等於其下標的元素。例如,在陣列{-3, -1,1,
【Java】 劍指offer(56-2) 陣列中唯一隻出現一次的數字 《劍指Offer》Java實現合集 56-1) 陣列中只出現一次的兩個數字 《劍指Offer》Java實現合集
本文參考自《劍指offer》一書,程式碼採用Java語言。 更多:《劍指Offer》Java實現合集 題目 在一個數組中除了一個數字只出現一次之外,其他數字都出現了三次。請找出那個只出現一次的數字。 思路 這道題中數字出現了三次,無法像56-1) 陣列
劍指offer Python版 - 陣列中重複的數字
題目描述 在一個長度為n的數組裡的所有數字都在0到n-1的範圍內。 陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意一個重複的數字。 例如,如果輸入長度為7的陣列{2,3,1,0,2,5,3},那麼對應的輸出是第一個重複的數字2。
劍指offer - 二維陣列中的查詢
題目描述 在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 方法1: 暴力破解,遍歷所有元素,比較得知是否含有目標元素,若有,則返回True,若不存
劍指offer[二維陣列查詢]
劍指offer[二維陣列查詢] 題目描述 思路 程式碼 細節知識 題目描述 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成
《劍指offer》系列 陣列中的逆序對(Java)
連結 牛客:陣列中的逆序對 題目描述 在陣列中的兩個數字,如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個陣列中的逆序對的總數P。並將P對1000000007取模的結果輸出。 即輸出P%1000000007 輸入描述 題目保證輸入的陣
《劍指offer》系列 陣列中出現次數超過一半的數字(Java)
連結 牛客: 陣列中出現次數超過一半的數字 題目描述 陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入一個長度為9的陣列{1,2,3,2,2,2,5,4,2}。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。 思路
【劍指offer】調整陣列數字位置
輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 *思路:遍歷陣列,找到第一個偶數的位置 i ,然後以此位置為起點,找到後續第一個奇數的位置 j,然後儲存下 array[j], 並將索引為