劍指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
思路分析
沒什麼難度,直接上程式碼。
# -*- coding:utf-8 -*-
class Solution:
def multiply(self, A):
# write code here
res = A[:]
temp_prod = 1
for index,count in enumerate(A):
res[index] = self.product(A[:index] + A[index+1:])
return res
def product(self, A):
temp_prod = 1
for index,count in enumerate(A):
temp_prod *= count
return temp_prod
相關推薦
劍指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 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] 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之構建乘積陣列
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)構建乘積陣列
時間限制:1秒 空間限制:32768K 熱度指數:84483 本題知識點: 陣列 題目描述 給定一個數組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]。不能使用除法。 impo
《劍指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:構建乘積陣列
題目描述 給定一個數組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)
設有陣列大小為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]。不能使用除法。 時間限制:1秒;空間限制:32768K;本題知識點:陣列
劍指offer-51:構建乘積陣列
題目描述 給定一個數組A[0,1,…,n-1],請構建一個數組B[0,1,…,n-1],其中B中的元素B[i]= A[0] x A[1] x … x A[i-1] x A[i+1] x … x A[n-1]。不能使用除法。 思路 由題目可知B[i]=A[0] x A[1] x …
劍指Offer-51 陣列中的逆序對
題目: 在陣列中的兩個數字如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個陣列中的逆序對的總數。 樣例 輸入:[1,2,3,4,5,6,0] 輸出:6 解答: class Solution(object): def inversePair
劍指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中
劍指offer -- 數字在排序陣列中出現的次數
題目描述 統計一個數字在排序陣列中出現的次數。 解題思路 因為題目給出的陣列是排序了的,所以我們想到了二分查詢。利用二分查詢找到一個數字在陣列中第一次出現的位置和最後出現的位置即可。 AC程式碼 public class Solution { public int
劍指offer第3:陣列中重複的數字
題目描述 在一個長度為n的數組裡的所有數字都在0到n-1的範圍內。 陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意一個重複的數字。 例如,如果輸入長度為7的陣列{2,3,1,0,2,5,3},那麼對應的輸出是第一個重複的數字2。 # -*- c
【劍指Offer】05旋轉陣列的最小數字
題目描述 把一個數組最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。 輸入一個非減排序的陣列的一個旋轉,輸出旋轉陣列的最小元素。 例如陣列{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該陣列的最小值為1。 NOTE:給出的所有元素都大於0,若陣列大小為0,請返回0。 時間
【劍指Offer】11調整陣列順序使奇數位於偶數前面
題目描述 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 時間限制:1秒;空間限制:32768K;本題知識點: 陣列 解題思路 思路一 建立一個新的陣列,先判
《劍指offer》二維陣列中的查詢
題目描述 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 class Solution { public: bool Find(int t
劍指Offer 30. 連續子陣列的最大和 (陣列)
題目描述 HZ偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如:{6,-3,-2,7,-15,1,2,2}
【Java】 劍指offer(44) 連續子陣列的最大和 《劍指Offer》Java實現合集 《劍指Offer》Java實現合集
本文參考自《劍指offer》一書,程式碼採用Java語言。 更多:《劍指Offer》Java實現合集 題目 數字以0123456789101112131415…的格式序列化到一個字元序列中。在這個序列中,第5位(從0開始計數)是5,第13位是1,第19位是4,等等。請寫一個