How the HackerRank round actually works at JPMorgan
The assessment consists of three sections stacked back to back. You get roughly 90 minutes total, though that timeline shifts depending on whether you are applying for a tech role or a quantitative analyst position. The first section is always aptitude and logical reasoning. These are multiple choice questions covering data interpretation, basic probability, syllogisms, and speed math. Most candidates breeze through this part because they have not read the instructions carefully. There is negative marking in some variants of the test, so guessing blindly can actually tank your score. I learned that the hard way during my own attempt. You need to flag uncertain questions and come back to them, not circle the first answer that looks plausible. The second section is the programming assessment. It typically has two or three coding problems ranging from easy to medium difficulty. Jp Morgan Hackerrank Questions 2023 lean heavily on arrays, strings, hash maps, and basic graph traversal. You are usually expected to write a complete function that passes hidden test cases, including edge cases involving empty inputs, duplicate values, and boundary conditions. The platform runs your code against a suite of automated tests after submission. Getting the logic right is only half the battle. Performance matters too. If your solution is O(n squared) when an O(n log n) approach exists, you will fail the hidden performance tests even if correctness looks fine on the surface.Jp Morgan Hackerrank Questions 2023: what they look like in practice
The coding problems follow a predictable pattern, which is both helpful and misleading. You will see a problem statement, input format, output format, and a few sample test cases. Your job is to read the input from standard input or implement the given function signature, then print the result or return the value. Java, C++, Python, and JavaScript are all supported. I usually recommend Python for speed of writing during the actual test, but the syntax quirks around division and integer overflow can bite you if you are not careful. In Python 3, the / operator returns a float while // does integer division. Mixing them up in a finance-related problem will corrupt your precision. One problem type that shows up consistently involves finding the shortest path in a grid with obstacles or calculating the maximum profit from a sequence of transactions. These are standard algorithmic templates, but the twist in the JPMorgan version is that they often wrap the logic in a financial context. A pathfinding problem might describe navigating a portfolio across regions, and the underlying algorithm is still breadth first search. Recognizing the pattern quickly saves time. The real issue is that many candidates spend five to seven minutes rederiving BFS from scratch instead of just implementing the standard queue-based approach they already know. Another recurring category is string manipulation combined with validation. Think bracket matching, palindrome checks with constraints, or parsing transaction logs. The edge case that caught me off guard last year involved leading zeros in numeric strings. The problem description mentioned large integers exceeding normal 64-bit range, which means you cannot rely on built-in integer types in every language. In Java, you need BigInteger. In C++, you either use a string-based arithmetic approach or a library. I spent eight extra minutes debugging because I assumed a long long would handle it, and two of my hidden test cases failed on exactly that constraint. That is a mistake you do not want to repeat. SQL questions also appear in the technical round, especially for roles that touch data engineering or business analytics. You might be asked to write a query joining two tables, filtering by date ranges, or computing rolling averages. Window functions like RANK and ROW_NUMBER come up frequently. The trick here is that HackerRank's SQL environment sometimes behaves differently from the databases you use daily. Certain PostgreSQL features may be partially supported or completely unsupported, and the execution order of subqueries can differ from what you expect. Test your query structure on the platform's sample data before assuming the hidden cases will behave the same way.There is a specific limitation of the HackerRank environment that nobody really warns you about. If your program reads all input at once using fast I/O methods in C++, the buffer can sometimes include trailing whitespace or newline characters that break your parsing logic. I discovered this when my string comparison kept failing on the last test case even though the visible examples worked perfectly. The fix was simply to trim the input explicitly and validate the delimiter handling rather than relying on default stream behavior.