public static int GetMaxPoints(MileStones game, List <int> res) { if (game == null) { return(0); } res.Add(game.Point); if (game.Children.Count == 0) { PrintPath(res); if (res.Count > 0) { res.RemoveAt(res.Count - 1); } return(game.Point); } int maxPoint = 0; foreach (var item in game.Children) { maxPoint = Math.Max(maxPoint, GetMaxPoints(item, res)); } if (res.Count > 0) { res.RemoveAt(res.Count - 1); } return(maxPoint + game.Point); }
public void AddMileStone(MileStones mileStone) { if (Children != null) { Children.Add(mileStone); } }
static void Main(string[] args) { Console.WriteLine("Hello World!"); // var output = TargetSum(new int[] { 2, 5, 3, 7, 8 }, 8); //Compress("aabbbbccdaaaf"); //var output = TwoSum(new int[] { 2, 5, 3, 7, 8 }, 8); // var output = CheckInclusion("ab", "eidbaooo"); //var SnL = new SnakeNLadder(); //SnL.GetInput(); //Console.WriteLine(SnL.QuickWayUp()); //var bowlingAlley = new BowlingAlleyGame(); //bowlingAlley.AddPlayer(1, "Anand"); //bowlingAlley.AddPlayer(2, "Rick"); //bowlingAlley.Play(); //var player = bowlingAlley.PlayersMoves; //_2DMatrixProblem.UpdateNearLoc(null); //PrintSortedSquareArray.Run(null); //FirstDuplicate.Run(new int[] { 2,1,2,1,3,3 }); //RotationalCipher.Run("abcdefghijklmNOPQRSTUVWXYZ0123456789", 39); //ReversetoMakeEqual.Run(new int[] { 1, 2, 3, 4 }, new int[] { 1, 4, 3, 2 }); //PassingYearbooks.Run(new int[] { 2, 1 }, 2); //ContiguousSubarrays.Run(new int[] { 2, 4, 7, 1, 5, 3 }); //MinimumLengthSubstrings.Run("bfbeadbcbcbfeaaeefcddcccbbbfaaafdbebedddf", "cbccfafebccdccebdd"); // BalanceBrackets.Run("{(})"); // ReverseOperations.Run(null); // EncryptedWords.Run("facebook"); // var sd = new SerlDelBT(); // var a = sd.Serialize(TreeNode.Init()); // var d = sd.DeSerialize(a); // var a = MinimumJumps.Run(new int[]{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}); // int[,] g = { // { 0, 1, 0, 1 }, // { 1, 0, 1, 0 }, // { 0, 1, 0, 1 }, // { 1, 0, 1, 0 } // }; // var a = IsBipartite.Run(g); // var b = IsBipartite.BFSRun(g); // var l = new List<Side>{ // new Side(2,2,3), // new Side(3,2,2), // new Side(2,5,6) // }; // var a = CountingTriangles.Run(l); // int[,] g = { // { 0, 0, 0, 1 }, // { 0, 0, 1, 1 }, // { 0, 1, 1, 1 }, // { 0, 0, 1, 1 } // }; // var a = LeftMostCol1.Run(g); // var arr = new ArrayList(); // arr.Add(1); // arr.Add(new ArrayList{ // 4, // new ArrayList{ // 6 // } // }); // var a = NestedListWeightSum.Run(arr); // var a = new List<int[]>{ // new int[] {2,3}, // new int[] {1,2}, // new int[] {2,1}, // new int[] {2,3}, // new int[] {2,2} // }; // var r = AnswerQuery.Run(a); // var a = new int[] {-100, -30, -10, -4, 0, 0, 0, 0, 30, 45}; // var b = new int[] {-60, -50, -10, -1, 0, 0 , 5 }; // var c = new int[] {-80, -20, -9, 4, 6}; // var res = Merge3SortArray.run(a, b, c); // var a = LengthOfLongestSubstring.Run("pwwkew"); // var n1 = new int[]{1,3}; // var n2 = new int[]{2}; // var a = FindMedianSortedArrays.Run(n1, n2); // var a = LongestPalindromicSubstring.Run("ccc"); // var a = ReverseInt.Run(-1893999999); // var a = MyAtoi.Run("-91283472332"); // var a = Divide.Run(-2147483648, -1); // var a = FirstMissingPositive.Run(new int[] {3,4,-1,1}); // var a = new int[][]{new int[]{1,3},new int[]{0,3}}; // var res = MergeIntervals.Run(a); // var a = new MovingAverage(3); // double res = a.Next(3); // res = a.Next(3); // res = a.Next(4); // res = a.Next(7); // res = a.Next(1); // res = a.Next(9); // var a = IsAlienSorted.Run(new string[] {"word","world","row"}, "worldabcefghijkmnpqstuvxyz"); // var a = DecodeString.Run("3[z]2[2[y]pq4[2[jk]e1[f]]]ef"); // var a = MobileNumberPadComb.Run("23"); // var a = LongestSubarrayLimitedDiff.Run(new int[] {8,2,4,7}, 4); // int[,] g = { // { 7, 8, 4, 2 }, // { 3, 9, 3, 3 }, // { 8, 1, 5, 1 }, // { 1, 2, 0, 3 } // }; // var a = new MatrixDiagonalsDec(g); // var b = a.Run(); // var a = new LinkedHashMap<string>(); // a.Enqueue(new QueueItem<string>(2, "Anand2")); // a.Enqueue(new QueueItem<string>(3, "Anand3")); // a.Enqueue(new QueueItem<string>(1, "Anand1")); // a.Enqueue(new QueueItem<string>(4, "Anand4")); // var p = a.Peek(); // System.Console.WriteLine($"{p.Id} | {p.Value}"); // var d = a.Dequeue(); // System.Console.WriteLine($"{d.Id} | {d.Value}"); // p = a.Peek(); // System.Console.WriteLine($"{p.Id} | {p.Value}"); // a.Enqueue(new QueueItem<string>(1, "Anand1New")); // p = a.Peek(); // System.Console.WriteLine($"{p.Id} | {p.Value}"); // a.ForceEnqueue(new QueueItem<string>(1, "Anand1New")); // p = a.Peek(); // System.Console.WriteLine($"{p.Id} | {p.Value}"); // d = a.Dequeue(); // System.Console.WriteLine($"{d.Id} | {d.Value}"); // d = a.Dequeue(); // System.Console.WriteLine($"{d.Id} | {d.Value}"); // d = a.Dequeue(); // System.Console.WriteLine($"{d.Id} | {d.Value}"); // var root = new TreeNode("5"); // root.left = new TreeNode("4"); // root.right = new TreeNode("8"); // root.left.left = new TreeNode("3"); // root.right.left = new TreeNode("10"); // root.right.right = new TreeNode("45"); // MorrisInorderRT.Run(root); // var d = new List<int>{ // 5, // 122340, // 29 // }; // System.Console.WriteLine(CheckValidDate.Run(d)); // var a = Mural.Run(new int[]{1,0,2,9,3,8,4,7,5,6}); // var a = new List<string>{"eat", "tea", "ate", "tab", "","bat", "cab","eta"}; // var output = GroupAnagram.Run(a); // foreach (var item in output) // { // foreach (var val in item) // { // System.Console.Write(val); // System.Console.Write(","); // } // System.Console.WriteLine(); // } // var a = new TreeNode("2"); // a.left = new TreeNode("1"); // a.right = new TreeNode("3"); // var ser = SerDelBSTnBT.Serialize(a); // System.Console.WriteLine(ser); // var res = SerDelBSTnBT.Deserialize(ser); // System.Console.WriteLine(SerDelBSTnBT.Serialize(res)); // var root = new NAryTreeNode(1); // root.Children.Add(new NAryTreeNode(4)); // root.Children[0].Children.Add(new NAryTreeNode(10)); // root.Children.Add(new NAryTreeNode(5)); // root.Children.Add(new NAryTreeNode(6)); // root.Children.Add(new NAryTreeNode(7)); // var res = SelDelNAry.Serialize(root); // System.Console.WriteLine(res); // var nodes = SelDelNAry.Deserialize(res); // System.Console.WriteLine(SelDelNAry.Serialize(nodes)); // NQueen.SolveNQueen(4); // int[,] g = { // { 20, 8, 4, 2 }, // { 15, 5, 3, 3 }, // { 8, 1, 5, 2 }, // { 1, 2, 0, 1 } // }; // int[,] k = { // {4, 2}, // {3, 1} // }; // int[,] f = { // { 20, 34, 5, 6}, // { 18, 19, 6, 5}, // { 12, 11, 10, 4}, // { 23, 100, 30, 2} // }; // var a = TopBottomPathMatrix.Run(f); // var test = new int[8]; // for (int i = 1; i <= 1000000; i++) // { // var num = RandIntFlipCoin.Run(0,7); // //System.Console.WriteLine(num); // test[num]++; // } // for (int i = 0; i < 8; i++) // { // System.Console.WriteLine($"{test[i]} => {(1.0 * test[i]) / 10}"); // } // var n = new Node(1); // n.Next = new Node(2); // n.Next.Next = new Node(3); // n.Next.Next.Next = new Node(4); // n.Next.Next.Next.Next = new Node(5); // ReorderList.Run(n); var game = new MileStones(1); var m1 = new MileStones(1); var m3 = new MileStones(3); var m2 = new MileStones(2); var m10 = new MileStones(10); var m20 = new MileStones(20); game.AddMileStone(m1); game.AddMileStone(m3); m1.AddMileStone(m2); m1.AddMileStone(m10); m3.AddMileStone(m20); var res = new List <int>(); System.Console.WriteLine(MaxGamePoint.GetMaxPoints(game, res)); }