在本教程中,我們將實現一個 JavaScript 程序來查找偶數和奇數的頻率。我們將得到一個 MXN 大小的 2D 矩陣,我們必須找到矩陣中存在的所有奇數和偶數的頻率(意味著存在的元素的數量)。我們將看到兩種方法,一種是強力方法(使用 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(使用 mod ‘%’ 運算符)
在這種方法中,我們簡單地使用嵌套 for 循環遍歷矩陣。在遍歷 for 循環時,我們計算了二維矩陣中奇數和偶數的頻率。為了檢查該值是奇數還是偶數,我們使用 mod (‘%’) 運算符,基本上對數字取 2 的模,如果 mod 值為 ‘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 的二維矩陣,我們必須找到該二維矩陣奇數值和偶數值的頻率。我們已經看到了兩種方法,一種是使用 mod 運算符,另一種是使用按位運算符。
以上就是JavaScript 程序計算矩陣中偶數和奇數的頻率的詳細內容,更多請關注www.92cms.cn其它相關文章!