เราได้รับเมทริกซ์ที่ประกอบด้วยจำนวนเต็ม เป้าหมายคือการหาจำนวนแถวในเมทริกซ์ที่มีองค์ประกอบเหมือนกันทั้งหมด
หากมีเมทริกซ์ขนาด 5X4 ดังที่แสดง −
| 1 | 5 | 1 | 3 | 1 |
| 1 | 1 | 1 | 1 | 1 |
| 5 | 3 | 2 | 3 | 5 |
| 7 | 7 | 7 | 7 | 7 |
คำตอบจะเป็น 2 แถวที่ 1 (มีทั้งหมด 1 ตัว) และแถวที่ 3 (มีทั้งหมด 7 ตัว) มีองค์ประกอบเหมือนกัน
ให้เราเข้าใจด้วยตัวอย่าง
ป้อนข้อมูล
matrix = [ 1 1 1 1 ] [ 2 3 2 7 ] [ 3 3 3 3 ]
ผลผลิต − จำนวนแถวในเมทริกซ์ที่ประกอบด้วยองค์ประกอบเดียวกันคือ − 2
คำอธิบาย − แถว 0 มีทั้งหมด 1 และแถว 2 มีทั้งหมด 3s
ป้อนข้อมูล −
matrix = [ 1 2 3 4 ] [ 1 2 3 4 ] [ 1 2 3 4 ]
ผลผลิต − จำนวนแถวในเมทริกซ์ที่ประกอบด้วยองค์ประกอบเดียวกันคือ − 0
คำอธิบาย - ทุกแถวมีองค์ประกอบที่แตกต่างกัน
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
เรากำลังหาเมทริกซ์ในรูปของเวกเตอร์ของเวกเตอร์
-
ใช้เมทริกซ์เป็นเวกเตอร์
> เมทริกซ์และเริ่มต้นมัน -
คำนวณขนาดโดยใช้ matrix.size()
-
ฟังก์ชัน same_rows(vector
> matrix, int size) ใช้เมทริกซ์และเป็นขนาดและส่งกลับจำนวนแถวที่มีองค์ประกอบเหมือนกัน -
นับเริ่มต้นเป็น 0
-
สำรวจเมทริกซ์โดยใช้ for loop i=0 ถึง i=ขนาด
-
สำหรับแต่ละแถวที่เคลื่อนที่จาก j=0 ถึง j
-
นำ set
set_row เพื่อจัดเก็บองค์ประกอบของแถวปัจจุบัน -
เพิ่มองค์ประกอบให้กับชุดนี้สำหรับแถวปัจจุบันโดยใช้ set_row.insert(matrix[i][j])
-
ในตอนท้ายให้ตรวจสอบขนาดของ set_row หากเป็น 1 แถวนี้มีองค์ประกอบเหมือนกันทั้งหมด จำนวนที่เพิ่มขึ้น
-
เมื่อสิ้นสุดการวนซ้ำทั้งหมดสำหรับทุกแถว ให้นับเป็นผลลัพธ์สุดท้าย
ตัวอย่าง
#include <bits/stdc++.h>
using namespace std;
int same_rows(vector> matrix, int size){
int count = 0;
for (int i = 0; i < size; i++){
set set_row;
for (int j = 0; j < matrix[i].size(); j++){
set_row.insert(matrix[i][j]);
}
int set_size = set_row.size();
if (set_size == 1){
count++;
}
}
return count;
}
int main(){
vector<vector<int>> matrix = {
{ 2, 2, 2, 2},
{ 5, 5, 5, 5 },
{ 2, 2, 2, 2 },
{5, 5, 5, 5}
};
int size = matrix.size();
cout<<"Count of rows in a matrix that consist of same element are: "<<same_rows(matrix, size);
return 0;
} ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Count of rows in a matrix that consist of same element are: 4