**Problem: **Write a program to check if a given number is jumbled number.

## What is a jumbled number?

A jumbled number is a number in which for every digit, it’s neighbor digit (left or right) differs by max 1.

For example:

Number | Is jumbled number? |
---|---|

1234 | true |

8987 | true |

2689 | false |

13 | false |

**Algorithm:
**To find a jumbled number we have to compare every digit of the number with the neighboring digits. So we have to get 2 neighboring digits of the number at a time and check if the difference is > 1. Let us see the algorithm.

Say, n is the given number. while n % 10 != 0 (Until all the digits of n are checked) digit1 = n % 10 // first digit in reverse order digit2 = (n/10) % 10 // (n/10) gives previous digit if absolute difference between digit1 and digit2 is greater than 1 return false // Not a jumbled number end if end while // Difference between neighboring digits is less than 1 for all the digits // of n. So return true

If there are n digits in a given number then above algorithm will have maximum n iterations. So worst-case complexity of above algorithm would be O**(n)**.

**Java program:
**We will write a Java program for above algorithm.

public class JumbledNumberChecker { private static boolean isJumbledNumber(int number) { while(number % 10 != 0){ int digit1 = number % 10; int digit2 = (number/10) % 10; if(Math.abs(digit2-digit1) > 1 && digit2 != 0) return false; number /= 10; } return true; } public static void main(String[] args) { int n1 = -1234; int n2 = 287; System.out.println("Is " + n1 + " jumbled number? : " + isJumbledNumber(n1)); System.out.println("Is " + n2 + " jumbled number? : " + isJumbledNumber(n4)); } }

**Output:**

Is -1234 jumbled number? : true Is 287 jumbled number? : false

I hope you liked the solution.

Please comment for your doubts and questions.

Your comments are most welcome.