Exemple #1
0
        private void button8_Click(object sender, EventArgs e)
        {
            //http://www.geeksforgeeks.org/dynamic-programming-set-27-max-sum-rectangle-in-a-2d-matrix/

            //and also in gayle book

            //construct a square
            int[,] matrix = new int[, ] {
                { 2, -1, -4, -20 },
                { -3, 4, 2, 1 },
                { 8, 10, 1, 3 },
                { -1, 1, 7, -6 }
            };


            var result = SubArraySum.MaxSubMatrixWithIndex(matrix);
            //var result = SubArraySum.MaxSubMatrix(matrix);
            StringBuilder sb = new StringBuilder();

            if (result != null)
            {
                sb.Append("Row: ").Append(result.RowStart).Append(" , ");
                sb.Append("Col: ").Append(result.ColStart).Append(" , ");
                sb.Append("Size: ").Append(result.RowEnd - result.RowStart + 1).Append(" , ");
                sb.Append("Sum :  ").Append(result.Sum);
            }
            else
            {
                sb.Append("No squares found");
            }

            this.textBox6.Text = sb.ToString();
        }
        public void TestingMaxSubArraySumSlidingWindow(int[] arr, int n, int expected)
        {
            var subArraySum = new SubArraySum();

            var result = subArraySum.MaxSubArraySumSlidingWindow(arr, n);

            Assert.AreEqual(expected, result);
        }
        private void button7_Click(object sender, EventArgs e)
        {
            int[] input = AlgorithmHelper.ConvertCommaSeparetedStringToInt(this.textBox11.Text);
            //SequenceSum result = FindMaxSumAndSequenceWithAllNegativeHandle(input);

            //bad test case
            //input = new int[]{-2,-1,-5,-8,-3};

            Puzzles.DataStructures.Array.SubArraySum.SubArrayResult result = SubArraySum.maxsubArrayWithIndex(input);
            this.textBox10.Text = result.Sum.ToString();

            StringBuilder sb = new StringBuilder();

            for (int i = result.StartIndex; i <= result.EndIndex; i++)
            {
                sb.Append(input[i]).Append(',');
            }
            this.textBox12.Text = sb.ToString();
        }