using System.Collections.Generic;
public static void Main()
getMaxAlgoNew(new int[] {10, 5, 2, 7, 8, 7}, 3);
Console.WriteLine("------");
getMaxAlgoNew(new int[] {10, 5, 2, 7, 8, 7, 15, 12, 18, 4}, 4);
private static void getMaxAlgoNew(int[] arr, int k) {
for(int i=0; i <arr.Length - k + 1; i++) {
arr[i] = getMax2(arr.AsMemory(i, k).ToArray());
Console.WriteLine(arr[i]);
private static int getMax2(int[] arr) {
for(int i=0; i<arr.Length; i++) {
public class LittleMoreImprovedAlgo {
private static void getMaxAlgoNew(int[] arr, int k) {
for(int i=0; i <arr.Length - k + 1; i++) {
arr[i] = getMax2(arr.AsMemory(i, k).ToArray(), k);
Console.WriteLine(arr[i]);
private static int getMax2(int[] arr, int k) {
public class LittleImprovedAlg {
private static void getMaxAlgoNew(int[] arr, int k) {
for(int i=0; i <arr.Length - k + 1; i++) {
arr[i] = getMax2(arr.AsMemory(i, k).ToArray(), k);
Console.WriteLine(arr[i]);
private static int getMax2(int[] arr, int k) {
List<int> newArr = new List<int>();
return getArrayMax(newArr);
private static int getArrayMax(List<int> arr) {
for(int i=1; i < arr.Count; i++) {
private static void getMaxAlgo(int[] arr, int k) {
for(int i=0; i <arr.Length - k + 1; i++) {
List<int> max = getMax(arr.AsMemory(i, k).ToArray(), k);
private static List<int> getMax(int[] arr, int k) {
List<int> newArr = new List<int>();
List<int> results = new List<int>();
results.Add(getArrayMax(newArr));
private static int getArrayMax(List<int> arr) {
for(int i=1; i < arr.Count; i++) {
private static void printMax(List<int> array) {
for(int i=0; i<array.Count; i++) {
Console.Write(array[i] + " ");