JavaScript:相鄰元素乘積演算法
在給定的問題陳述中,我們必須藉助 Javascript 功能來計算相鄰元素的乘積。因此,我們將使用迴圈和基本數學運算來解決此問題。
理解問題
手頭的問題陳述是計算兩個相鄰元素的乘積,並且該乘積應該在陣列中最大。因此,基本上該演算法涉及陣列中兩個相鄰專案的最大乘積。此功能通常用於各種情況下,例如查詢最大利潤或解決數學難題。
上述問題的示例是:假設我們有一個像 [1, 2, 3, 4, 5, 6] 這樣的陣列,那麼此陣列中的最大乘積將是 5 * 6 = 30。因此,我們的任務是實現程式碼以生成陣列中兩個相鄰專案的最大乘積。
給定問題的邏輯
為了解決上述問題,我們將迭代輸入陣列並計算每對相鄰專案的乘積。我們將跟蹤找到的最大乘積,並在找到更大的乘積時更新。該函式將從第一個專案開始,我們將停止對倒數第二個元素的計算,因為在它形成對之後不存在專案。
演算法
步驟 1:根據給定的問題,我們必須找到陣列中存在的兩個相鄰專案的最大乘積。因此,首先我們將定義一個函式來執行相同的任務。並且此函式將接受一個名為 inputArray 的引數作為輸入。
步驟 2:定義上述函式後,我們將宣告一個變數來儲存兩個專案的最大乘積。並將其值初始化為數字。Negative_Infinity。
步驟 3:我們已定義變數來儲存最大乘積。現在我們的任務是使用 for 迴圈迭代陣列項並計算兩個相鄰專案的乘積。
步驟 4:由於我們必須找到乘積,因此在此步驟中,我們將計算兩個相鄰專案的乘積。並將乘積值儲存在名為 product 的單獨變數中。
步驟 5:在此步驟中,我們將檢查條件,即乘積的值是否為最大乘積。如果條件為真,那麼我們將使用乘積值更新 maxProduct 值。並且還返回 maxProduct 的值以在控制檯上顯示它。
示例
//Function for adjacent elements product
function adjacentElemsProduct(inputArray) {
let maxProduct = Number.NEGATIVE_INFINITY;
for (let i = 0; i < inputArray.length - 1; i++) {
const product = inputArray[i] * inputArray[i + 1];
if (product > maxProduct) {
maxProduct = product;
}
}
return maxProduct;
}
const array = [3, 6, -2, -5, 7, 3];
const result = adjacentElemsProduct(array);
console.log(result);
輸出
21
複雜度
我們建立的函式的時間複雜度為 O(n),其中 n 是輸入陣列的長度。因為我們對陣列執行了單次遍歷。並且我們在恆定時間內執行了最大乘積的比較和更新。空間複雜度為 O(1),因為我們使用了固定數量的記憶體來儲存最大乘積。
結論
計算兩個相鄰專案最大乘積的問題是一個簡單而強大的演算法。我們提供了一個演算法並計算了其時間和空間複雜度。此函式可用於各種情況下,用於查詢最大乘積、財務分析和解謎。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP