# Find four consecutive same numbers diagonal wise, row wise and column wise?

**URL:** https://forum.kirupa.com/t/find-four-consecutive-same-numbers-diagonal-wise-row-wise-and-column-wise/671142
**Category:** programming
**Created:** [November 17, 2024, 9:04am UTC](https://forum.kirupa.com/t/find-four-consecutive-same-numbers-diagonal-wise-row-wise-and-column-wise/671142 "2024-11-17T09:04:37Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![oslon](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/oslon/32/24631_2.png) [@oslon](https://forum.kirupa.com/u/oslon)
#### Post date: [November 17, 2024, 9:04am UTC](https://forum.kirupa.com/t/find-four-consecutive-same-numbers-diagonal-wise-row-wise-and-column-wise/671142/1 "2024-11-17T09:04:37Z")

</div>

![image](https://canada1.discourse-cdn.com/flex011/uploads/kirupa/original/3X/b/c/bc5466d90e098a0fe2d1120a0db67f16d9f7cadd.png)  
I had earlier written method for such a case in 1d array

```auto
public static boolean isConsecutiveFour(int[] values) {
        int currentNumber;
        int prevNumber = values[0];
        int count = 1;
        for (int i = 1; i < values.length; i++) {
            currentNumber = values[i];
            if (prevNumber == currentNumber) {
                count++;
                if (count == 4) {
                    return true;
                }
            } else {
                count = 1; // reset count if not consecutive numbers
            }
            prevNumber = currentNumber;
        }
        return false;

    }

```

Now, my logic tells me that I can just do this:

```auto
       for (int i = 0; i < matrix.length; i++) {
            if (isConsecutiveFour(matrix[i])) {
                System.out.println("Consecutive four digits on " + i + " th row");
            }
        }

```

However, I was surprised when this didn’t work for columns.

Can nyone guide me?

---

<div class="post-metadata">

### Author: ![kirupa](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/kirupa/32/11616_2.png) [@kirupa](https://forum.kirupa.com/u/kirupa)
#### Post date: [November 18, 2024, 7:54pm UTC](https://forum.kirupa.com/t/find-four-consecutive-same-numbers-diagonal-wise-row-wise-and-column-wise/671142/2 "2024-11-18T19:54:13Z")

</div>

You could handle each of the four cases separately. Handle the rows separately, columns separately, diagonal , and diagonal /.

That could be the first brute-force approach to consider.

---

<div class="post-metadata">

### Author: ![oslon](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/oslon/32/24631_2.png) [@oslon](https://forum.kirupa.com/u/oslon)
#### Post date: [November 19, 2024, 2:36am UTC](https://forum.kirupa.com/t/find-four-consecutive-same-numbers-diagonal-wise-row-wise-and-column-wise/671142/3 "2024-11-19T02:36:12Z")

</div>

```
public static boolean rowHasConsecutiveNumbers(int[][] matrix) {
    int counter; // random value to initialize to avoid errors
    for (int i = 0; i < 6; i++) {
        counter = 1;
        for (int j = 0; j < matrix[0].length - 1; j++) {
            for (int jfirst = j; jfirst < j + 3 - 1; j++) {
                if (matrix[i][jfirst] == matrix[i][jfirst + 1]) {
                    counter++;
                    if (counter >= 4) {
                        return true;
                    }
                }
            }
        }
    }
    return false;
}

```

Wrote it for rows, somehow this just works. Could not do the same for columns

---

<div class="post-metadata">

### Author: ![oslon](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/oslon/32/24631_2.png) [@oslon](https://forum.kirupa.com/u/oslon)
#### Post date: [November 19, 2024, 3:00am UTC](https://forum.kirupa.com/t/find-four-consecutive-same-numbers-diagonal-wise-row-wise-and-column-wise/671142/4 "2024-11-19T03:00:15Z")

</div>

It was wrong. Consulted chatgpt(first time) and corrected the code.

```auto
public class Lr {
    public static void main(String[] args) {
        boolean hasConsecutiveRows = false;
        int[][] matrix = {
                {0, 2, 0, 0, 1, 6, 1},
                {0, 1, 6, 8, 6, 0, 1},
                {5, 3, 2, 1, 8, 2, 9},
                {6, 3, 6, 1, 1, 9, 1},
                {1, 3, 6, 1, 4, 0, 7},
                {3, 3, 3, 3, 4, 0, 7}};

// boolean doesRowHasConsecutiveNumbers = rowHasConsecutiveNumbers(matrix);
// System.out.println(doesRowHasConsecutiveNumbers);

        boolean doesColHasConsecutiveNumbers = colHasConsecutiveNumbers(matrix);

        System.out.println(doesColHasConsecutiveNumbers);

    }

    public static boolean colHasConsecutiveNumbers(int[][] matrix) {
        for (int j = 0; j < matrix[0].length; j++) {
            int counter = 1;
            for (int i = 0; i < matrix.length - 1; i++) {
                if (matrix[i][j] == matrix[i + 1][j]) {
                    counter++;
                    if (counter >= 4) {
                        return true;
                    }
                } else {
                    counter = 1;
                }
            }

        }
        return false;
    }

    public static boolean rowHasConsecutiveNumbers(int[][] matrix) {
        for (int i = 0; i < matrix.length; i++) { // Loop through rows
            int counter = 1; // Start with a counter of 1
            for (int j = 0; j < matrix[0].length - 1; j++) { // Loop through columns
                if (matrix[i][j] == matrix[i][j + 1]) {
                    counter++; // Increment counter if consecutive numbers match
                    if (counter >= 4) {
                        return true; // Found four consecutive numbers
                    }
                } else {
                    counter = 1; // Reset counter if sequence breaks
                }
            }
        }
        return false; // No row has four consecutive equal numbers
    }
}

```

---

<div class="post-metadata">

### Author: ![kirupa](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/kirupa/32/11616_2.png) [@kirupa](https://forum.kirupa.com/u/kirupa)
#### Post date: [November 19, 2024, 5:34pm UTC](https://forum.kirupa.com/t/find-four-consecutive-same-numbers-diagonal-wise-row-wise-and-column-wise/671142/5 "2024-11-19T17:34:15Z")

</div>

You may find **claude** to be a better option for coding questions like this!

---

<div class="post-metadata">

### Author: ![oslon](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/oslon/32/24631_2.png) [@oslon](https://forum.kirupa.com/u/oslon)
#### Post date: [November 20, 2024, 1:56am UTC](https://forum.kirupa.com/t/find-four-consecutive-same-numbers-diagonal-wise-row-wise-and-column-wise/671142/6 "2024-11-20T01:56:53Z")

</div>

Thanks I had heard about it but wasn’t using it. I’ll use i from now on.
