public int[] MaxSubarraySum(int[] arr, int x) { if (arr.Length == 0 || arr.Length < x) { return(Array.Empty <int>()); } MyQueue q = FillQueue(arr, x);//n int pSum = 0; int cSum = 0; int[] result = new int[x]; //n for (int i = x; i < arr.Length; i++) // n = arr.Length { pSum = Sum(q); // n = x.Length q.Remove(); q.Add(arr[i]); cSum = Sum(q); if (cSum > pSum) { result = FillArray(q); } } return(result); }
public int[] MaxSubarraySum(int[] arr, int k) { MyQueue queue = new MyQueue(); MyQueue maxQ = new MyQueue(); for (int i = 0; i < arr.Length; i++) { if (queue.count < k) { queue.Add(arr[i]); } else if (queue.count == k) { queue.Add(arr[i]); queue.Remove(); queue.maxSum = SumOfAllNodeItems(queue); if (maxQ.maxSum < queue.maxSum) { maxQ = CloneQueue(queue); maxQ.maxSum = queue.maxSum; } } } return(FromQueueToArray(maxQ)); }
public static void ExecQueue() { MyQueue myQueue = new MyQueue(); myQueue.IsEmpty(); myQueue.PrintQueue(); myQueue.Add(7); myQueue.Add("Tina"); myQueue.Add("11 bytes"); myQueue.Add(91); myQueue.Remove(); myQueue.PrintQueue(); }