騰訊的一道陣列求解

2021-06-05 16:58:07 字數 710 閱讀 3327

兩個陣列a[n],b[n],其中a[n]的各個元素值已知,現給b[i]賦值,b[i] = a[0]*a[1]*a[2]...*a[n-1]/a[i];

要求:1.不准用除法運算

2.除了迴圈計數值,a[n],b[n]外,不准再用其他任何變數(包括區域性變數,全域性變數等)

3.滿足時間複雜度o(n),空間複雜度o(1)

#include

using namespace std;

#define n 4

/**總的思路如下:

* b[i] = (a[0]*a[1]*..a [i-1]) *(a[i+1]*...*a[n])

* 所以在不借助其他陣列或者變數的情況下,先從左至右讓b[i]存前半部分,在

* 從右至左讓b[i]存後半部分。

*/int main(void)

;int b[4] =; 

/*第一步:先從左到右進行遍歷,即將b[i]的前半部分先計算出來

b[i]=a[0]*a[1]*a[2]*a[3]*a[i-1]=b[i-1]*a[i-1]  

*/for(int i=1; i

/*第二步:先從右到左進行遍歷,即將b[i]的後半部分算出來

*/for(i=n-2; i>0; i--)

b[0]*=a[1];//計算b[0]的值。

for(i=0; i<4; i++)

return 0;

}

求解一道arduino問題

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...

一道騰訊前端試題

題目 有一組數字,從1到n 假設n 10000 從中任意刪除了3個數,順序也被打亂,剩餘數字放在乙個n 3的陣列裡,請找出丟失的數字,要求演算法比較快。方法一,我寫的程式 var ary 1,5,7,6,4,8,10 var n ary.length 3 var newary document.wr...

一道演算法題的求解

將1 9這9個數字組合成3個三位數,要求第2個三位數是第乙個三位數的2倍,第3個三位數是第乙個三位數的3倍。找出所有的可能方案。如果直接求出所有符合要求的排列組合的數那效率會特別低,所以最基本的思路就是先用便捷的方法得到滿足一部分要求的數,再篩選。組合的三位數的範圍是111 999 重複的 含0的最...