Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
 public void AddMileStone(MileStones mileStone)
 {
     if (Children != null)
     {
         Children.Add(mileStone);
     }
 }
Ejemplo n.º 3
0
        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));
        }