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.

What most candidates get wrong and how to avoid it

The biggest mistake is treating the assessment as a pure coding test. JPMorgan evaluates multiple dimensions simultaneously: problem solving speed, code quality, edge case coverage, and how well you perform under time pressure. Writing clean, modular code with descriptive variable names actually matters here because sometimes a secondary reviewer looks at your submission after the automated tests. Messy code raises red flags regardless of whether it passes. Another common pitfall is ignoring the constraints section of the problem statement. The constraints tell you the maximum input size, which directly determines which algorithms are viable. If n is up to 10 to the fifth power, an O(n squared) solution will definitely time out. If n is up to 10 to the third power, you have more flexibility. Reading the constraints first and choosing the algorithm based on those bounds rather than instinct is a habit that separates people who clear the round from those who do not. You also need to manage your time across the three sections strategically. I have seen candidates spend 40 minutes on the aptitude section and then rush through the coding problems in 20 minutes. That strategy almost never works. Allocate your time proportionally: roughly 20 minutes for aptitude, 55 to 60 minutes for coding, and 10 minutes for SQL or any remaining questions. Leave five minutes at the end to review anything you flagged. Running out of time with an incomplete solution is worse than having partial solutions across all sections. Test-driven development works here too, even under pressure. Write a quick test for your function using the provided sample cases before you submit. Then add your own edge cases manually: empty input, single element, already sorted data, reverse sorted data, and data with duplicates. This usually catches 80 percent of the failures before the hidden tests reveal them.

Resources and preparation strategy

Practicing on HackerRank itself is the closest simulation you can get. Their SQL track and the arrays and strings domains contain problems that mirror the difficulty level and style of the JPMorgan assessment. LeetCode is useful as a supplement, but it does not replicate the exact interface or the aptitude section you will face. You should also take a full length timed practice test with all three sections together to build stamina. The cognitive load of switching between aptitude, coding, and SQL within one sitting is higher than it sounds, and only practicing the full sequence prepares you for that reality. Don't neglect the behavioral and technical interview that follows the HackerRank round. Clearing the assessment gets you to the interview stage, but the interview is where most offers are won or lost. Prepare stories around your projects, especially any work involving finance, data pipelines, or systems design. Be ready to whiteboard a solution and talk through your reasoning out loud. The interviewers are evaluating how you think, not just whether you can produce correct code in isolation.