JavaScript 矩陣中奇數和偶數頻率的程式
在本教程中,我們將實現一個 JavaScript 程式來查詢奇數和偶數的頻率。我們將得到一個 MXN 大小的二維矩陣,並且我們必須找到矩陣中所有奇數和偶數的頻率(表示元素出現的次數)。我們將看到兩種方法,一種是蠻力方法(使用 for 迴圈),另一種是按位與運算子方法。
問題介紹
在這個問題中,我們得到一個包含奇數和偶數的二維矩陣,這些奇數和偶數以無序的方式排列,我們必須找到二維矩陣中奇數和偶數的頻率。例如 -
在這個問題中,我們得到一個包含奇數和偶數的二維矩陣,這些奇數和偶數以無序的方式排列,我們必須找到二維矩陣中奇數和偶數的頻率。例如 -
Row ( m ) = 3; Column ( n ) = 3;
Matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]];
從給定的 3X3 大小的矩陣中,我們有奇數和偶數的頻率為 -
Frequency of odd number = 5 Frequency of even number = 4
我們可以返回頻率,也可以簡單地打印出來,讓我們進入問題的解決方法 -
方法 1(使用模運算子 ‘%’)
在這種方法中,我們簡單地使用巢狀 for 迴圈遍歷矩陣。在遍歷 for 迴圈時,我們計算了二維矩陣中奇數和偶數的頻率。為了檢查值是奇數還是偶數,我們使用了模運算子(‘%’),基本上是用數字對 2 取模,如果模值為 ‘1’,則表示它是奇數值,否則它是偶數值,最後,我們返回這些奇數和偶數的計數。讓我們進入此方法的程式碼以更好地理解。
示例
下面是一個 JavaScript 程式,用於使用模運算子查詢矩陣中奇數和偶數的頻率 -
let MAX = 100;
// function for calculating frequency
function freq(arr,row,col) {
let evenNum = 0, oddNum = 0;
for (let i = 0; i < row; ++i) {
for (let j = 0; j < col; ++j) {
// checking evenNum or oddNum using mod operator
if ((arr[i][j] % 2) == 0)
++evenNum;
else
++oddNum;
}
}
// print Frequency of odd and even numbers
console.log(" Frequency of odd numbers = " + oddNum );
console.log(" Frequency of even numbers = " + evenNum );
}
let m = 3, n = 3;
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
freq(arr, m, n);
時間和空間複雜度
以上程式碼的時間複雜度為 O(M*N),其中 M 是二維矩陣的行大小,N 是列大小。
以上程式碼的空間複雜度為 O(1),因為我們只使用了一個 int 值來儲存一個整數。
方法 2(使用按位 ‘&’ 運算子)
在這種方法中,我們將簡單地使用巢狀 for 迴圈遍歷矩陣。在遍歷 for 迴圈時,我們計算了二維矩陣中奇數和偶數的頻率。為了檢查值是奇數還是偶數,我們在這裡使用了按位 (‘&’) 運算子,基本上是用數字與 1 進行按位運算,如果按位值為 ‘0’,則表示它是偶數值,否則它是奇數值,最後,我們返回這些奇數和偶數的計數。讓我們進入此方法的程式碼以更好地理解。
示例
下面是一個 JavaScript 程式,用於使用按位 & 運算子查詢矩陣中奇數和偶數的頻率 -
let MAX = 100;
// function for calculating frequency
function freq(arr,row,col) {
let evenNum = 0, oddNum = 0;
for (let i = 0; i < row; ++i) {
for (let j = 0; j < col; ++j) {
// checking evenNum or oddNum using bitwise operator
if ((arr[i][j] & 1) == 0)
++evenNum;
else
++oddNum;
}
}
// print Frequency of odd and even numbers
console.log(" Frequency of odd numbers = " + oddNum );
console.log(" Frequency of even numbers = " + evenNum );
}
let m = 3, n = 3;
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
freq(arr, m, n);
時間和空間複雜度
以上程式碼的時間複雜度為 O(M*N),其中 M 是二維矩陣的行大小,N 是列大小。
以上程式碼的空間複雜度為 O(1),因為我們只使用了一個 int 值來儲存一個整數。
結論
在本教程中,我們實現了一個 javascript 程式,用於查詢二維矩陣中奇數和偶數的頻率。我們給定一個大小為 NXM 的二維矩陣,並且我們必須找到二維矩陣中奇數值和偶數值的頻率。我們看到了兩種方法,一種是使用模運算子,另一種是使用按位運算子。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP