
My OA for Point72 was on the HackerRank platform and consisted of three questions, with 90 minutes given to complete them. The difficulty level was moderately high, falling into the common OA pattern of basic logic combined with optimization thinking.
I’m really grateful to Linkjob.ai for helping me pass my interview, which is why I’m sharing my OA questions and experience here. Having an undetectable AI coding interview assistant during the interview indeed provides a significant edge.
This article is part of the HackerRank series. If you're interested in other articles in this series, feel free to read: Microsoft HackerRank test, JP Morgan HackerRank test, Stripe HackerRank online assessment.

This is a typical “greedy + simple swap restriction” problem. The goal is to match bigger numbers with higher weights while following the rules: only adjacent swaps are allowed, and each element can be swapped at most once.
My approach was:
First, understand the target: the contribution of each position i is arr[i] * (i+1), so bigger numbers should be placed at positions with larger i+1.
The swap restriction (adjacent swap, each element at most once) essentially means “each pair of adjacent elements can be swapped at most once.”
The actual operation is simple: traverse the array from left to right, and for each i, if arr[i] > arr[i+1], swap them. The logic is that the larger number moves to a higher-weight position, increasing the total sum, and each element is swapped at most once.
Example [2,1,4,3]:
i=0: 2 > 1 → swap → [1,2,4,3]
i=2: 4 > 3 → swap → [1,2,3,4]
Final contribution: 1*1 + 2*2 + 3*3 + 4*4 = 30, which is optimal.

The key here is to transform the equation into a “number of factors” problem.
Steps:
Original equation: 1/x + 1/y = 1/(N!). Combine fractions: (x + y) * N! = x * y. Rearrange: x*y - N!*x - N!*y = 0. Add (N!)^2 to both sides: (x - N!) * (y - N!) = (N!)^2.
The problem becomes counting positive integer pairs (x, y), which is equivalent to counting positive factor pairs of (N!)^2.
Factor counting:
Factorize N!: N! = p1^e1 * p2^e2 * ... * pk^ek.
Then (N!)^2 = p1^(2e1) * p2^(2e2) * ... * pk^(2ek).
Number of positive factors: (2e1 + 1) * (2e2 + 1) * ... * (2ek + 1), which gives the number of positive solutions.
Modulo 1000007:
Since 1000007 is prime, if N >= 1000007, N! contains it, so (N!)^2 is divisible by 1000007, making the answer 0 modulo 1000007.
If N < 1000007, just compute factor exponents and plug into the formula.
Example N=2:
2! = 2^1 → (2!)^2 = 2^2 → factors = 3, corresponding to solutions (3,6), (4,4), (6,3).

Linkjob AI worked great and I got through my interview without a hitch. It’s also undetectable, I used it and didn't trigger any HackerRank detection.
If you're still concerned about the covert nature of AI copilots, you can read HackerRank how to cheat to learn how to use them.

This problem is about “exponentially increasing greedy selection,” since 2^i grows quickly and larger i gives a much bigger boost.
Approach:
Group upgrades by i and pick the one with the lowest cost for each i. This ensures maximum effect with minimal cost.
Pick upgrades greedily from largest i to smallest: if the budget allows, purchase it, subtract the cost, and add 2^i to the total boost. Skip if the budget is insufficient, and continue until the budget is exhausted.
Example: upgrades indexed 0-4, minimum costs for each:
i=0:10, i=1:20, i=2:14, i=3:40, i=4:50
Sorted by i descending: i=4(50) → i=3(40) → i=2(14) → i=1(20) → i=0(10)
Budget = 70:
Buy i=4 (50) → remaining 20
i=3 cost 40 → skip
Buy i=2 (14) → remaining 6
i=1 and i=0 exceed 6 → skip
Total boost = 2^4 + 2^2 = 16 + 4 = 20, matching the example.

Point72’s HackerRank online assessment (OA) mainly focuses on algorithmic thinking, mathematical modeling, and the ability to combine business logic with coding. The questions generally cover the following core areas:
This is the core module of the OA. Questions often involve arrays, greedy algorithms, and mathematical reasoning, with an emphasis on balancing code efficiency and logical correctness.
For example, in my OA, the Element Swapping problem required combining a greedy strategy with swap restrictions to achieve the optimal result in O(n) time. Boundary conditions also needed careful attention to handle large inputs up to 1e6.
These questions are wrapped in real-world scenarios, so the first step is translating the business requirements into an algorithmic model and then choosing the appropriate strategy to solve it.
The key is “breaking down business rules.” For instance, in an upgrade problem, “effect = 2^i” represents exponential priority, and “cost limit” represents a budget constraint in a greedy selection. The challenge is to abstract the real-world problem into a clear algorithmic framework.
These questions require simplifying the problem through mathematical derivation before implementing it in code.
They often start with an equation or formula, which must be transformed—via factorization, prime factorization, or other techniques—into a computable mathematical model, such as counting factors or performing modulo operations. Coding is then used to handle large numbers or optimize computations. The focus is on combining mathematical abstraction with practical implementation.
Although my OA did not include a dedicated efficiency problem, Point72’s assessments often test performance optimization under large inputs.
These problems require not only correct logic but also optimized time and space complexity. Techniques include using hash tables for grouping, replacing brute-force with greedy or dynamic programming approaches, and ensuring the solution does not exceed time or memory limits.
LeetCode:
Greedy Algorithms: Practice medium-level problems like adjacent swap optimization, priority selection, and scenario-based greedy.
Array Operations: Focus on linear traversal, efficient grouping, and large-scale optimization problems.
Number Theory: Work on problems involving prime factorization, modulo operations, and factor counting.
Business Translation: Solve algorithm problems wrapped in real-world scenarios to practice turning rules into models.
HackerRank:
Greedy: Practice medium-level problems in the Algorithms section, tailored to OA style.
Array: Focus on interval modification, custom sorting, and efficient searching problems.
Number Theory: Solve Mathematics section problems on prime factorization and modulo operations.
Practice makes a huge difference. Here’s how I structured my practice:
Daily SQL Drills: I picked random questions from the resources above and wrote queries from scratch.
Coding Sprints: I set a timer for 15-20 minutes and tried to solve a problem as fast as I could.
Logic Puzzles: I worked on brain teasers and business cases to sharpen my thinking.
Review Sessions: I went back to my mistakes and figured out why I got them wrong.
Some strategies that worked for me:
I prioritized tasks based on their difficulty and impact on my score.
I used a simple checklist to track which questions I finished and which needed more work.
I kept my workspace clear so I could focus.
I followed a structured approach to handle multiple topics.
Mock tests were the final piece of my prep. I took at least three full-length practice tests before the real thing. I set a timer for 90 minutes and tried to recreate the test environment as closely as possible. I used questions from the resources above.
I also use top AI tools for cheating during mock interviews to get comfortable with operating them smoothly during actual interviews and to ensure the AI interview assistant won't malfunction during the real thing.
After each mock test, I reviewed my answers and made notes on what I missed. I paid special attention to the types of mistakes I made, like misreading the question or making a small syntax error.
I’ve made this mistake in past interviews, and it cost me points. Sometimes I rushed through a question and missed a key detail. The test writers love to hide important hints in the wording. I learned to slow down and read each question twice. I also underlined or highlighted numbers, column names, or special instructions. It’s better to spend an extra minute understanding than to waste time solving the wrong problem.
Simple solutions work best. Here’s what helped me avoid making things too complex:
I started every problem by writing a short plan in comments. I outlined my approach, thought about the complexity, and listed edge cases.
I built my code step by step. First, I wrote helper functions. Then, I added the main logic. I tested as I went.
I picked unique variable names and stuck to one coding style. This kept my code clear and easy to follow.
I’ve lost points for missing a semicolon or using the wrong column name. To avoid this, I double-checked my syntax and ran my code after every change. I also made sure my internet connection was stable before starting the test.
I recommend focusing on:
Python Core Topics: String manipulation and array operations (high-frequency basic question types).
SQL Core Topics: Multi-table joins and aggregate queries in financial scenarios (business-oriented question types).
Algorithm Core Topics: Greedy strategies and handling edge cases (logic application question types).
Rarely. The recommendation is to first focus on mastering practical basics, but about 10% of preparation time can be used to review these topics, just to be prepared.
2026 Nvidia HackerRank Test: Questions I Got and How I Passed
How I Cracked 2026 Citadel HackerRank Assesment Questions
My IBM 2026 HackerRank Assessment: Real Questions & Insights
My 2026 MathWorks HackerRank Assessment Questions & Solutions
Questions I Encountered in 2026 Goldman Sachs HackerRank Test