The Time Limit Exceeded (aka TLE) is one of the most common errors among competitive programmers.
Generally, the root cause of the error is that your program does not generate all the results (according to the hidden test cases) in the stipulated time. It either takes a very long or an infinitely long amount of time to end.
This can happen due to various reasons such as time complexity of your algorithm (generally most naive approaches get a TLE error), your program might not print any result at all thus the compiler waits infinitely, your program control may have fallen in an infinite loop, your program might be reading input and output too slow, generally avoid using Scanner in Java. Also in case of TLE, it is not guaranteed that whether the solution was correct or not. There is also no way of knowing how many more seconds it could have taken to finish.
For detailed information you can refer these resources below:
TLE | HackerEarth
What does TLE mean? | Stack Overflow
TLEs can be the most irritating errors to debug. But the happiness of getting the green tick after fixing the TLEs is simply inexplicable.