Luyện tập #4
Bài học 13 trên 14 trong khóa học Bảng băm, loạt cấu trúc dữ liệu #4 của Coddy.
Thử thách
DễViết một hàm (function) mostFrequent nhận một mảng số nguyên không rỗng arr và trả về phần tử xuất hiện nhiều nhất.
Nếu hai phần tử có số lần xuất hiện cao nhất bằng nhau, hãy trả về phần tử đạt số lần đó trước (sớm nhất theo thứ tự duyệt).
Bạn phải dùng lớp HashMap được cung cấp trong hashmap.<ext> — không dùng các kiểu dữ liệu dựng sẵn của ngôn ngữ như tập hợp, từ điển hoặc ánh xạ.
Tự làm thử
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "solution.h"
int main() {
char line[8192];
if (!fgets(line, sizeof(line), stdin)) line[0] = '\0';
int arr[4096];
int n = 0;
char* tok = strtok(line, " \t\r\n");
while (tok) { arr[n++] = atoi(tok); tok = strtok(NULL, " \t\r\n"); }
int r = mostFrequent(arr, n);
printf("%d\n", r);
return 0;
}
Tất cả bài học trong Bảng băm, loạt cấu trúc dữ liệu #4
Tự luyện tập: Trình biên dịch C online