×

Tìm Phần Tử Ít Xuất Hiện Nhất Trong Mảng C#

Để tìm phần tử xuất hiện ít nhất trong một mảng số nguyên trong C#, bạn có thể sử dụng một từ điển (Dictionary) để lưu trữ tần suất xuất hiện của từng phần tử. Sau đó, duyệt qua từ điển để tìm phần tử có tần suất nhỏ nhất. Dưới đây là ví dụ chi tiết về cách thực hiện việc này.

Mã nguồn C# để tìm phần tử xuất hiện ít nhất trong một mảng số nguyên

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        // Nhập vào một mảng số nguyên
        int[] numbers = { 1, 3, 2, 3, 4, 3, 2, 5, 2, 5, 5, 1 };

        // Tìm phần tử xuất hiện ít nhất trong mảng
        int leastFrequent = FindLeastFrequentElement(numbers);

        // In ra kết quả
        Console.WriteLine("Phần tử xuất hiện ít nhất trong mảng là: " + leastFrequent);
    }

    static int FindLeastFrequentElement(int[] arr)
    {
        Dictionary<int, int> frequency = new Dictionary<int, int>();

        // Duyệt qua từng phần tử trong mảng và đếm tần suất xuất hiện
        foreach (int num in arr)
        {
            if (frequency.ContainsKey(num))
            {
                frequency[num]++;
            }
            else
            {
                frequency[num] = 1;
            }
        }

        // Tìm phần tử có tần suất xuất hiện nhỏ nhất
        int minCount = frequency.Values.Min();
        int leastFrequent = frequency.First(x => x.Value == minCount).Key;

        return leastFrequent;
    }
}

Giải thích:

  • Mảng numbers:

    • Chứa các số nguyên, trong đó một số phần tử có thể xuất hiện nhiều lần.
  • Hàm FindLeastFrequentElement:

    • Dictionary<int, int> frequency: Tạo một từ điển để lưu trữ tần suất xuất hiện của từng phần tử.
    • foreach (int num in arr): Duyệt qua từng phần tử trong mảng.
    • if (frequency.ContainsKey(num)): Nếu phần tử đã tồn tại trong từ điển, tăng tần suất của nó lên 1.
    • else { frequency[num] = 1; }: Nếu phần tử chưa tồn tại, thêm nó vào từ điển với tần suất là 1.
    • int minCount = frequency.Values.Min();: Tìm tần suất nhỏ nhất trong từ điển.
    • int leastFrequent = frequency.First(x => x.Value == minCount).Key;: Tìm phần tử đầu tiên có tần suất bằng minCount và trả về phần tử đó.

Cách chạy chương trình:

  1. Sử dụng Visual Studio:
    • Mở Visual Studio.
    • Tạo một dự án mới: File -> New -> Project -> Chọn "Console App (.NET Core)" hoặc "Console App (.NET Framework)".
    • Sao chép và dán mã nguồn vào tệp Program.cs.
    • Nhấn nút "Start" hoặc "Run" để chạy chương trình.

Comments