ellapt

DSA2.4.LongestEqualsUtils

Jun 1st, 2013
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.78 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace T4.LongestEquals
  5. {
  6.     public class LongestEqualsUtils
  7.     {
  8.         /// <summary>
  9.         /// Finds the longest subsequence of equal numbers in given List<int> and returns the result as new List<int>.
  10.         /// </summary>
  11.         /// <param name="numbersList">The given list of integer numbers</param>
  12.         /// <returns>List<int> longestEquals contains the longest subsequence of equal numbers in the numbersList</returns>
  13.         public static List<int> LongestEqualNumbersSubSet(List<int> numbersList)
  14.         {
  15.             int index = 0;
  16.             int number = 1;
  17.             int indexNew = 0;
  18.             int numberNew = 0;
  19.             int currentIndex = 0;
  20.  
  21.             int count = numbersList.Count;
  22.             while (currentIndex < count - 1)
  23.             {
  24.                 indexNew = currentIndex;
  25.                 numberNew = 1;
  26.                 for (int j = indexNew; j < count - 1; j++)
  27.                 {
  28.                     if (numbersList[j] == numbersList[j + 1])
  29.                     {
  30.                         numberNew++;
  31.                         currentIndex++;
  32.                     }
  33.                     else
  34.                     {
  35.                         if (numberNew >= number)
  36.                         {
  37.                             index = indexNew;
  38.                             number = numberNew;
  39.                         }
  40.                         break;
  41.                     }
  42.                 }
  43.  
  44.                 currentIndex++;
  45.             }
  46.  
  47.             List<int> longestEquals = new List<int>();
  48.             for (int i = index; i < index + number; i++)
  49.             {
  50.                 longestEquals.Add(numbersList[i]);
  51.             }
  52.             return longestEquals;
  53.         }
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment