ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่ค้นหาจำนวนความผิดปกติในอาร์เรย์ที่กำหนด
ตัวเลขเป็นความผิดปกติในอาร์เรย์ที่กำหนด ถ้าความแตกต่างที่แน่นอนระหว่างตัวเลขกับตัวเลขอื่นๆ ทั้งหมดมากกว่าตัวเลข k ที่กำหนด มาดูตัวอย่างกัน
ป้อนข้อมูล
arr = [3, 1, 5, 7] k = 1
ผลผลิต
4
ความแตกต่างที่แน่นอนระหว่างตัวเลขทั้งหมดกับตัวเลขอื่นมีค่ามากกว่า k
อัลกอริทึม
-
เริ่มต้นอาร์เรย์
-
วนซ้ำบนอาร์เรย์
-
นำองค์ประกอบและวนซ้ำบนอาร์เรย์
-
หาผลต่างสัมบูรณ์ระหว่างตัวเลขทั้งสอง
-
หากไม่มีความแตกต่างที่แน่นอนน้อยกว่าหรือเท่ากับ k กว่าการเพิ่มจำนวนความผิดปกติ
-
-
การนำไปใช้
ต่อไปนี้เป็นการนำอัลกอริธึมข้างต้นไปใช้ใน C++
#include <bits/stdc++.h>
using namespace std;
int getAnomaliesCount(int arr[], int n, int k) {
int count = 0;
for (int i = 0; i < n; i++) {
int j;
for (j = 0; j < n; j++) {
if (i != j && abs(arr[i] - arr[j]) <= k) {
break;
}
}
if (j == n) {
count++;
}
}
return count;
}
int main() {
int arr[] = {3, 1, 5, 7}, k = 1;
int n = 4;
cout << getAnomaliesCount(arr, n, k) << endl;
return 0;
} ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
4