using System.Collections.Generic;
public static void Main()
Console.WriteLine("Hello World");
int[] inputs = {3,4,5,6,7,8,2};
int[] result = new int[inputs.Length];
int[] numbers = { 1, 2, 3, 4, 2, 3, 5, 6, 1 };
for(int i=k;i<inputs.Length; i++) {
result[count++] = inputs[i];
result[count++] = inputs[i];
foreach(var i in result) {
Console.WriteLine($"second Max: {FindSecondHighest(inputs)}");
int secondMax = inputs.Distinct().OrderByDescending(x => x).Skip(1).First();
Console.WriteLine($"LINQ second Max: {secondMax}");
foreach(int i in FindDuplicate(numbers)) {
Console.WriteLine("using Linq");
var duplicate = numbers.GroupBy(x => x)
.Where(g => g.Count() > 1)
Console.WriteLine($"Duplicate: {string.Join(", ", duplicate)}");
Console.WriteLine("Freq of each character.");
string input = "interview";
var freq = input.GroupBy(x => x)
.Select(g => new { character = g.Key, count = g.Count()});
Console.WriteLine($"freq: {string.Join(", ", freq)}");
Console.WriteLine("1st non repeting character");
var firstNonRep = s.GroupBy(x => x).Where(x => x.Count() == 1).Select(x => x.Key).FirstOrDefault();
Console.WriteLine($"firstNonRep: {string.Join(", ", firstNonRep)}");
public static int FindSecondHighest(int[] nums) {
int secMax = int.MinValue;
foreach(int num in nums) {
} else if(num>secMax && num != max) {
public static List<int> FindDuplicate(int[] nums) {
List<int> result = new List<int>();
HashSet<int> hashset = new HashSet<int>();
foreach(int num in nums) {
if(hashset.Contains(num)) {