Given a binary matrix, find the row with max decimal value

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Diagnostics;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] binaryMatrix = new int[,] { { 0, 1, 0 }, { 1, 1, 0 }, { 1, 0, 1 } };
            int decimalValue = 0;
            Console.WriteLine("Row with max decimal value = " + (RowWithMaxDecimalValue(binaryMatrix, out decimalValue) + 1));
            Console.WriteLine("Value = " + decimalValue);
        }

        public static int RowWithMaxDecimalValue(int[,] matrix, out int decimalValue)
        {

            int rowIndex = -1; decimalValue = 0;
            for (int i = 0; i < matrix.GetLength(0); i++)
            {
                string temp = "";
                for (int j = 0; j < matrix.GetLength(1); j++)
                {
                    temp = temp + matrix[i, j];
                    Console.Write(matrix[i, j] + " ");
                }
                Console.WriteLine();
                int tempNum = Convert.ToInt32(temp, 2);
                if(rowIndex == -1)
                {
                    decimalValue = tempNum;
                    rowIndex = i;
                }
                else
                {
                    if(tempNum > decimalValue)
                    {
                        decimalValue = tempNum;
                        rowIndex = i;
                    }
                }
            }
            return rowIndex;
        }
    }
}

Output
=======
0 1 0
1 1 0
1 0 1
Row with max decimal value = 2
Value = 6
Press any key to continue . . .
Advertisements
This entry was posted in Information Technology. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s