Row with max 1s Java
- Get link
- X
- Other Apps
PROGRAM TO FIND THE ROW WITH MAXIMUM NUMBER OF 1s
import java.io.*; class GFG { static int R = 4, C = 4; // Function to find the index of first index // of 1 in a boolean array arr[] static int first(int arr[], int low, int high) { if (high >= low) { // Get the middle index int mid = low + (high - low) / 2; // Check if the element at middle index is first 1 if ((mid == 0 || (arr[mid - 1] == 0)) && arr[mid] == 1) return mid; // If the element is 0, recur for right side else if (arr[mid] == 0) return first(arr, (mid + 1), high); // If element is not first 1, recur for left side else return first(arr, low, (mid - 1)); } return -1; } // Function that returns index of row // with maximum number of 1s. static int rowWithMax1s(int mat[][]) { // Initialize max values int max_row_index = 0, max = -1; // Traverse for each row and count number of // 1s by finding the index of first 1 int i, index; for (i = 0; i < R; i++) { index = first(mat[i], 0, C - 1); if (index != -1 && C - index > max) { max = C - index; max_row_index = i; } } return max_row_index; } // Driver Code public static void main(String[] args) { int mat[][] = { { 0, 0, 0, 1 }, { 0, 1, 1, 1 }, { 1, 1, 1, 1 }, { 0, 0, 0, 0 } }; System.out.println("Index of row with maximum 1s is " + rowWithMax1s(mat)); } }
OUTPUT
Index of row with maximum 1s is 2
- Get link
- X
- Other Apps
Comments
Post a Comment