program UniqueExcludeDuplicatesProgram;
type
TArray = array of Integer;
TFrequencyMap = array of Integer;
function GetUniqueExcludeDuplicates(arr: TArray): TArray;
var
frequency: TFrequencyMap;
result: TArray;
i, size, num: Integer;
begin
// Initialize the frequency map
SetLength(frequency, 1000); // Assuming values are within the range 0-999
for i := 0 to High(frequency) do
frequency[i] := 0;
// Count frequencies of each number
for i := 0 to High(arr) do
Inc(frequency[arr[i]]);
// Collect numbers that appear only once
size := 0;
for i := 0 to High(arr) do
begin
num := arr[i];
if frequency[num] = 1 then
begin
SetLength(result, size + 1);
result[size] := num;
Inc(size);
end;
end;
// Return the result array
GetUniqueExcludeDuplicates := result;
end;
var
arr, uniqueValues: TArray;
i: Integer;
begin
arr := TArray.Create(1, 2, 3, 5, 8, 3, 1, 1, 0, 6, 5, 7, 3, 1, 4, 9);
uniqueValues := GetUniqueExcludeDuplicates(arr);
Write('Unique values (excluding duplicates): ');
for i := 0 to High(uniqueValues) do
begin
Write(uniqueValues[i], ' ');
end;
Writeln;
end.
(*
run:
Unique values (excluding duplicates): 2 8 0 6 7 4 9
*)