LogIn
I don't have account.
Sponsored -53%
Zebronics #1 Best Seller

ZEBRONICS Blanc Slim Wireless Mouse — Rechargeable, BT + 2.4GHz (Black)

Up to 1600 DPI · Silent clicks · 63g · Multicolor LED

★★★★★ 4.0 (9,512) 5K+ bought last month
₹376 M.R.P. ₹799Save ₹423
Buy Now
Adℹ

My Adobe SDE Interview Experience (Aug 2026) 5 Rounds, Selected

Tanvi Deshmukh
1.05K Views
Amazon Pay offer
Adℹ

I want to share my Adobe interview story. I will tell you what happened in each round, what I got right, where I got stuck and what the interviewer said to help me when I was stuck. I will also show the code for every DSA question, starting from my first (slow) idea and ending with the best idea. I hope this helps you if you have an Adobe interview coming up.

Result: Selected.

Detail Info
Company Adobe
Role SDE (Backend Developer)
Total rounds 5
Coding problems 4
Overall Difficulty ⭐⭐⭐☆☆ (3/5)
Result Selected

Round 1: Aptitude Test and Technical MCQs (60–90 minutes)

This round had two parts and no live interviewer. It was more like a test.

The first part was an aptitude test. It had logical reasoning questions, basic math and pattern recognition questions. Nothing about coding here, just general thinking speed.

The second part had 20 technical MCQs (multiple choice questions). These covered DSA basics, Operating Systems (things like processes, threads and memory), DBMS (normalization, joins, indexing) and SQL optimization.

What I'd Tell Someone Before This Round

I did not treat this round as "just an MCQ test," and I am glad I didn't. A few of the OS and DBMS questions were tricky in a quiet way they looked simple, but one wrong word in the question could flip the answer. For example, a question about "which type of join returns all rows from both tables even when there is no match" is easy if you know the difference between an inner join and a full outer join, but easy to get wrong if you're rushing.

My tip: don't rush through MCQs just because there is no coding. Read each question twice before picking an answer, especially on OS and DBMS topics.

Round 2: DSA Coding Round (60 minutes, 2 problems)

This round had two coding problems. Both were based on arrays and trees.

Problem 1: Rotate Array

You get an array of numbers. You need to rotate it to the right by k steps. For example, [1,2,3,4,5,6,7] rotated right by 3 steps becomes [5,6,7,1,2,3,4].

My first idea (brute force): I said, "I can just rotate the array one step at a time and do this k times." One rotation means: take the last number and put it at the front, then shift everything else one place to the right.

static void bruteForce(int[] nums, int k) {
    int n = nums.length;
    k = k % n;
    for (int t = 0; t < k; t++) {
        int last = nums[n - 1];
        for (int i = n - 1; i > 0; i--) {
            nums[i] = nums[i - 1];
        }
        nums[0] = last;
    }
}

I said out loud that this works, but it is slow. Doing one rotation takes O(n) time and I am doing it k times, so the total time is O(n × k). If k is close to n, this becomes close to O(n²), which is not great for a large array.

The interviewer just asked, "Can you do this faster, maybe without doing it step by step?" That question pushed me to think of a smarter way.

A better idea (using extra space): I can build a brand new array. Every number moves to its new correct position in one pass. This is O(n) time, but it uses O(n) extra space, since I need a second array.

static void extraArray(int[] nums, int k) {
    int n = nums.length;
    k = k % n;
    int[] result = new int[n];
    for (int i = 0; i < n; i++) {
        result[(i + k) % n] = nums[i];
    }
    System.arraycopy(result, 0, nums, 0, n);
}

The best idea (reverse trick, no extra space): This is the one I actually used in the interview and it is a nice trick once you see it. You reverse the whole array first. Then you reverse the first k numbers. Then you reverse the rest. That's it.

static void optimalReverseTrick(int[] nums, int k) {
    int n = nums.length;
    k = k % n;
    reverse(nums, 0, n - 1);   // reverse everything
    reverse(nums, 0, k - 1);   // reverse the first k numbers
    reverse(nums, k, n - 1);   // reverse the rest
}

static void reverse(int[] nums, int left, int right) {
    while (left < right) {
        int temp = nums[left];
        nums[left] = nums[right];
        nums[right] = temp;
        left++;
        right--;
    }
}

This is O(n) time and O(1) extra space meaning it does not need any second array at all. It rotates the array in place. I tested it with [1,2,3,4,5,6,7] and k=3 and it gave [5,6,7,1,2,3,4], which is correct. I also checked what happens if k is bigger than the array size like k=5 on a 3-number array and the trick still works because I take k % n first.

I explained to the interviewer why the reverse trick works: rotating right by k means the last k numbers move to the front and the first n-k numbers move to the back, but their own order inside each group does not change. Reversing everything once flips both groups, then reversing each group again inside itself puts each group back in the right order, but now they are in the right spots too.

Follow-Up Questions

1. What if k is 0, does your rotate function still work?

Yes, I said if k is 0, none of the reverse calls actually move anything meaningful in a way that changes the final order, since reversing the "first 0 elements" and reversing "elements from index 0 to n-1" (the whole array again) still lands back on the same array after the full reverse and the two half reverses cancel out correctly. I mentioned I'd still want to test this edge case directly instead of just assuming it.

Problem 2: All Elements in Two Binary Search Trees

Leetcode Link: All Elements in Two BSTs

You get two Binary Search Trees (BSTs). You need to return all the numbers from both trees, combined into one single sorted list.

For this one, I knew the right idea quickly, because I remembered an important fact about BSTs: if you do an in-order traversal of a BST (visit left side, then the node, then right side), you always get the numbers in sorted order for free. No extra sorting needed.

So my plan was: do an in-order traversal of tree 1 to get a sorted list. Do an in-order traversal of tree 2 to get another sorted list. Then merge these two sorted lists into one, the same way you merge two lists in merge sort.

static void inorder(TreeNode node, List<Integer> out) {
    if (node == null) return;
    inorder(node.left, out);
    out.add(node.val);
    inorder(node.right, out);
}

static List<Integer> optimal(TreeNode root1, TreeNode root2) {
    List<Integer> list1 = new ArrayList<>();
    List<Integer> list2 = new ArrayList<>();
    inorder(root1, list1);
    inorder(root2, list2);

    List<Integer> merged = new ArrayList<>();
    int i = 0, j = 0;
    while (i < list1.size() && j < list2.size()) {
        if (list1.get(i) <= list2.get(j)) merged.add(list1.get(i++));
        else merged.add(list2.get(j++));
    }
    while (i < list1.size()) merged.add(list1.get(i++));
    while (j < list2.size()) merged.add(list2.get(j++));
    return merged;
}

I did point out the slower way too, just to show I understood why my way was better: you could throw every number from both trees into one big list and then sort that list at the end. That works, but sorting takes O((m+n) log(m+n)) time. My way skips the sorting step completely and just merges, which is O(m+n) time faster and it uses the special sorted property of a BST instead of ignoring it.

I tested this on two small trees and got the correct merged, sorted list both ways, so I was confident the faster method was right, not just faster.

Follow-Up Questions

1. For the two-BST problem, does it matter if the trees are not balanced?

No I said in-order traversal visits every node no matter how the tree is shaped, so it still gives a sorted list even for a very lopsided tree. The time complexity is still based on the number of nodes, not the shape.

2. Could you solve the two-BST problem without collecting the full list into memory first?

I said you could use two iterators (using an explicit stack for each tree's in-order traversal) and pull one value at a time from whichever tree has the smaller "next" value, similar to how you would merge two linked lists lazily. I said this would help if the final merged list needs to be streamed instead of stored fully in memory, but for this problem, since we need to return the whole list anyway, the simpler two-list-then-merge approach is easier to write correctly under interview time pressure.

Round 3: Mixed Round One Coding Problem Plus a Personal Conversation (60 minutes)

This round started with a short coding problem. I honestly don't remember the exact question anymore it was somewhere between easy and medium and I was able to solve it, but the details did not stay in my memory the way the other two problems did.

After the coding part, the conversation became more personal and relaxed. The interviewer asked about my hobbies. I told them I like open-source work, blogging and photography. Then they asked how I keep up with new tech trends. I said I follow tech blogs, go to meetups, try out new frameworks on my own time and do coding challenges on sites like LeetCode and Codewars. They also asked how I balance my job and learning new things. I said I make time for side projects, go to conferences when I can and learn a lot just from talking to other people on my team.

This round felt less like a test and more like a normal conversation between two people who both like building things. I think being honest and specific here mattered more than giving a "perfect" answer.

Round 4: DSA Plus Code Review (60 minutes, 1 problem)

After a quick introduction, I was given one coding problem directly.

The Problem: Kth Smallest Element in a Sorted Matrix

Leetcode Link: Kth Smallest Element in a Sorted Matrix

You get a square matrix (grid of numbers) where every row is sorted left to right and every column is sorted top to bottom. You need to find the k-th smallest number in the whole matrix.

My first idea (using a heap): I said I could use a min-heap (a small-number-comes-out-first structure). I put the first number of every row into the heap, since the first number of a sorted row is always the smallest in that row. Then I pop the smallest number from the heap and every time I pop a number from some row, I push the next number from that same row into the heap. I do this k times and the last number I pop is the answer.

static int heapApproach(int[][] matrix, int k) {
    int n = matrix.length;
    PriorityQueue<int[]> minHeap = new PriorityQueue<>((a, b) -> a[0] - b[0]);
    for (int row = 0; row < n; row++) {
        minHeap.offer(new int[]{matrix[row][0], row, 0});
    }
    int result = -1;
    for (int i = 0; i < k; i++) {
        int[] top = minHeap.poll();
        result = top[0];
        int row = top[1], col = top[2];
        if (col + 1 < n) {
            minHeap.offer(new int[]{matrix[row][col + 1], row, col + 1});
        }
    }
    return result;
}

This works and it is faster than just flattening the whole matrix into one list and sorting it (which would be the true brute force way, at O(n² log n²) time). The heap way is around O(k log n) time.

The interviewer then asked me if I could make it even faster. That question is what pushed me toward binary search.

My best idea (binary search on the answer): Instead of searching through positions in the matrix, I searched through possible values. I know the smallest possible answer is the top-left number and the largest possible answer is the bottom-right number. I picked the middle value between these two and counted how many numbers in the matrix are less than or equal to that middle value. If that count is smaller than k, the real answer must be bigger than my middle guess, so I search the upper half of the value range next. Otherwise, I search the lower half (including the middle value itself).

Counting how many numbers are less than or equal to a guess can be done in O(n) time using a neat "staircase" walk: start at the bottom-left corner of the matrix and move up or right depending on whether the current number is too big or small enough.

static int optimalBinarySearch(int[][] matrix, int k) {
    int n = matrix.length;
    int lo = matrix[0][0], hi = matrix[n - 1][n - 1];
    while (lo < hi) {
        int mid = lo + (hi - lo) / 2;
        int count = countLessOrEqual(matrix, mid);
        if (count < k) lo = mid + 1;
        else hi = mid;
    }
    return lo;
}

static int countLessOrEqual(int[][] matrix, int target) {
    int n = matrix.length;
    int count = 0, row = n - 1, col = 0; // start bottom-left
    while (row >= 0 && col < n) {
        if (matrix[row][col] <= target) {
            count += row + 1; // everything above this cell in the same column is also <= target
            col++;
        } else {
            row--;
        }
    }
    return count;
}

This runs in about O(n log(max - min)) time, where max - min is the range between the smallest and largest number in the matrix. It does not depend on k at all, which makes it a nice improvement when k is large.

I tested my binary search answer against both the brute-force sort and the heap approach, on the classic example matrix [[1,5,9],[10,11,13],[12,13,15]] with k=8 and all three gave the same answer: 13.

The Dry Run

The interviewer asked me to do a dry run using a sample matrix, going through my binary search step by step on paper showing the lo, hi, mid and the count at each step, until the two pointers met. This part was actually good practice for me, because saying each step out loud forced me to make sure I really understood my own code, not just that it happened to work.

The Code Review Part

After the coding problem, I was shown a few small code snippets and asked to point out bugs, bad habits or ways to improve them. Here are the kinds of things I was looking for, with real examples:

Comparing objects with == instead of .equals(). In Java, comparing two Integer objects with == compares whether they are the exact same object in memory, not whether they hold the same value. For small numbers (between -128 and 127), Java happens to reuse the same cached objects, so == can look like it works until you try it with bigger numbers.

Integer a = 200;
Integer b = 200;
System.out.println(a == b);       // false! surprising if you expect true
System.out.println(a.equals(b));  // true, correct way to compare values

Off-by-one errors in loops. A loop like for (int i = 0; i <= arr.length; i++) will try to read one position past the end of the array, causing a crash.

for (int i = 0; i <= arr.length; i++) { // should be < not <=
    sum += arr[i]; // crashes on the last loop with ArrayIndexOutOfBoundsException
}

Building strings with += inside a loop. Every time you use += on a String inside a loop, Java creates a brand new String and copies everything so far into it. For a small loop this doesn't matter, but for a big loop it gets very slow, very fast. I actually timed this difference: building a string of 60,000 numbers using += took about 3.2 seconds, while doing the exact same thing with a StringBuilder took about 2 milliseconds over a thousand times faster.

// Slow
String result = "";
for (int i = 0; i < n; i++) result += i;

// Fast
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) sb.append(i);
String result = sb.toString();

Pointing out real, specific problems like these, instead of just saying "this looks fine," is what I think this part of the round was really checking for.

Round 5: Behavioral Round (60 minutes)

This last round had no coding at all. The interviewer asked about my past work experience, why I wanted to join Adobe and some general behavioral questions about how I work and think. It felt more like a friendly conversation than a test and it was a nice, calm way to end the whole process.

Biggest Learnings

Looking back at all five rounds, I noticed one pattern in myself: almost every time, my first idea worked, but it was not the fastest idea. The rotate array problem, the kth-smallest-in-matrix problem both times, I started with something simple and correct and only got to the best version after the interviewer gently asked, "Can you do better?" That question was never mean or tricky. It was just a normal, expected part of the round. Getting comfortable hearing that question, instead of feeling like it means you did something wrong, made a big difference in how calm I felt.

Preparation Tips

  • Practice explaining your first idea out loud, even if it is slow, before jumping to the best idea. Interviewers want to see how you think, not just the final fast answer appearing out of nowhere.

  • For array problems, learn the reverse trick and similar in-place tricks. They come up more than once and they show you can think about memory, not just correctness.

  • For anything involving a Binary Search Tree, always remember: in-order traversal gives you sorted order for free. This one fact solves a surprising number of BST questions quickly.

  • For matrix or search-space problems, if a heap solution works but feels slow, ask yourself if you can binary search over the answer instead of the position. This pattern shows up a lot in "kth smallest/largest" style questions.

  • Practice reading small code snippets and looking for common mistakes: wrong object comparisons, off-by-one loop bounds and slow string building in loops. These are simple to fix once you know to look for them, but easy to miss if you are not specifically checking.

  • Do not skip the "soft" rounds. Be ready to talk honestly about your hobbies, how you learn new things and why you want the job. These rounds are shorter to prepare for, but they are still real rounds that count.

  • Practice DSA problems regularly and consistently, on any platform you like. Being comfortable with common patterns (sliding window, two pointers, in-order traversal, binary search on the answer) matters more than memorizing exact problems.

Interview Preparation Resources

FAQs

1. How many rounds does the Adobe SDE interview have?

In my case, 5 rounds: an aptitude and MCQ test, a DSA coding round, a mixed coding-and-personal round, a DSA-plus-code-review round and a final behavioral round.

2. What kind of coding questions does Adobe ask for SDE roles?

I was asked Rotate Array, All Elements in Two Binary Search Trees and Kth Smallest Element in a Sorted Matrix. The topics covered arrays, BSTs, heaps and binary search.

3. Does Adobe ask about Operating Systems and DBMS?

Yes, in the very first round. It was all multiple choice questions, covering processes, threads, memory, normalization, joins, indexing and SQL optimization.

4. Does Adobe include a code review round?

In my loop, yes. After solving a coding problem in Round 4, I was shown small code snippets and asked to spot bugs and bad practices, not just write new code.

5. Is the Adobe SDE interview very hard?

I would call it a solid 3 out of 5. None of the problems were extremely hard on their own, but almost every round expected me to go from a simple first answer to a better, faster one and to clearly explain my thinking the whole way.

Conclusion

Five rounds, four coding problems and a lot of "can you do better than that?" questions along the way. If you take one thing from my experience, let it be this: it is completely fine to start with a slow, simple idea. What matters is that you can explain why it is slow and then work your way to something better, out loud, step by step.

Responses (0)

Write a response

CommentHide Comments

No Comments yet.

"},"4":{"id":4,"name":"ZEBRONICS Blanc mouse ad","otherData":"{}","contentFormat":2,"content":"
Sponsored -53%
Zebronics #1 Best Seller

ZEBRONICS Blanc Slim Wireless Mouse — Rechargeable, BT + 2.4GHz (Black)

Up to 1600 DPI · Silent clicks · 63g · Multicolor LED

★★★★★ 4.0 (9,512) 5K+ bought last month
₹376 M.R.P. ₹799Save ₹423
Buy Now
"},"2":{"id":2,"name":"Crousal Ads","otherData":"{}","contentFormat":2,"content":"
Sponsored -34%
iQOO Amazon's Choice

iQOO Z10 Lite 5G — Cyber Green, 4GB RAM, 128GB Storage

Dimensity 6300 · 50MP Sony AI Camera · 6000 mAh · IP64

★★★★★ 4.0 (2,052) 500+ bought last month
₹18,997 M.R.P. ₹28,999Save ₹10,002
Buy Now
"},"1":{"id":1,"name":"Banner Ads","otherData":"{}","contentFormat":2,"content":"\n
\n \n \n \"Amazon\n \n
"}}},"blogDetails":{"isWriter":false,"likes":0,"isLikedByUser":false,"tagIds":[134,145,177,360,363,448,450,453,454,457],"tags":[{"id":134,"name":"Interview","maskingName":"interview","isFeatured":true},{"id":145,"name":"Adobe","maskingName":"adobe","isFeatured":false},{"id":177,"name":"DSA","maskingName":"dsa","isFeatured":true},{"id":360,"name":"SDE 1","maskingName":"sde-1","isFeatured":false},{"id":363,"name":"Interview Experience","maskingName":"interview-experience","isFeatured":true},{"id":448,"name":"Interview Preparation","maskingName":"interview-preparation","isFeatured":true},{"id":450,"name":"Technical Interview","maskingName":"technical-interview","isFeatured":true},{"id":453,"name":"Coding Interview","maskingName":"coding-interview","isFeatured":true},{"id":454,"name":"System Design Interview","maskingName":"system-design-interview","isFeatured":true},{"id":457,"name":"Interview Questions","maskingName":"interview-questions","isFeatured":true}],"comments":[],"bookmark":{"isBookmarked":false,"count":0},"author":{"userId":"MjlfNF84LVsyOThdMm4tdENfQU5nZV9fSXQ=","name":"Tanvi Deshmukh"},"viewCount":1053,"showBannerImage":false,"seoTags":"adobe sde interview experience, adobe interview experience 2026, adobe coding interview questions, adobe sde interview questions, rotate array interview question, all elements in two bsts, kth smallest element in sorted matrix, adobe interview process, adobe interview rounds, dsa interview questions, software engineer interview experience, binary search on answer, code review interview round, adobe behavioral interview questions, faang interview experience, sde interview preparation","content":"

I want to share my Adobe interview story. I will tell you what happened in each round, what I got right, where I got stuck and what the interviewer said to help me when I was stuck. I will also show the code for every DSA question, starting from my first (slow) idea and ending with the best idea. I hope this helps you if you have an Adobe interview coming up.

\n

Result: Selected.

\n
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
DetailInfo
CompanyAdobe
RoleSDE (Backend Developer)
Total rounds5
Coding problems4
Overall Difficulty⭐⭐⭐☆☆ (3/5)
ResultSelected
\n
\n

Round 1: Aptitude Test and Technical MCQs (60–90 minutes)

\n

This round had two parts and no live interviewer. It was more like a test.

\n

The first part was an aptitude test. It had logical reasoning questions, basic math and pattern recognition questions. Nothing about coding here, just general thinking speed.

\n

The second part had 20 technical MCQs (multiple choice questions). These covered DSA basics, Operating Systems (things like processes, threads and memory), DBMS (normalization, joins, indexing) and SQL optimization.

\n

What I'd Tell Someone Before This Round

\n

I did not treat this round as \"just an MCQ test,\" and I am glad I didn't. A few of the OS and DBMS questions were tricky in a quiet way they looked simple, but one wrong word in the question could flip the answer. For example, a question about \"which type of join returns all rows from both tables even when there is no match\" is easy if you know the difference between an inner join and a full outer join, but easy to get wrong if you're rushing.

\n

My tip: don't rush through MCQs just because there is no coding. Read each question twice before picking an answer, especially on OS and DBMS topics.

\n

Round 2: DSA Coding Round (60 minutes, 2 problems)

\n

This round had two coding problems. Both were based on arrays and trees.

\n

Problem 1: Rotate Array

\n

You get an array of numbers. You need to rotate it to the right by k steps. For example, [1,2,3,4,5,6,7] rotated right by 3 steps becomes [5,6,7,1,2,3,4].

\n

My first idea (brute force): I said, \"I can just rotate the array one step at a time and do this k times.\" One rotation means: take the last number and put it at the front, then shift everything else one place to the right.

\n
static void bruteForce(int[] nums, int k) {\n    int n = nums.length;\n    k = k % n;\n    for (int t = 0; t < k; t++) {\n        int last = nums[n - 1];\n        for (int i = n - 1; i > 0; i--) {\n            nums[i] = nums[i - 1];\n        }\n        nums[0] = last;\n    }\n}\n
\n

I said out loud that this works, but it is slow. Doing one rotation takes O(n) time and I am doing it k times, so the total time is O(n × k). If k is close to n, this becomes close to O(n²), which is not great for a large array.

\n

The interviewer just asked, \"Can you do this faster, maybe without doing it step by step?\" That question pushed me to think of a smarter way.

\n

A better idea (using extra space): I can build a brand new array. Every number moves to its new correct position in one pass. This is O(n) time, but it uses O(n) extra space, since I need a second array.

\n
static void extraArray(int[] nums, int k) {\n    int n = nums.length;\n    k = k % n;\n    int[] result = new int[n];\n    for (int i = 0; i < n; i++) {\n        result[(i + k) % n] = nums[i];\n    }\n    System.arraycopy(result, 0, nums, 0, n);\n}\n
\n

The best idea (reverse trick, no extra space): This is the one I actually used in the interview and it is a nice trick once you see it. You reverse the whole array first. Then you reverse the first k numbers. Then you reverse the rest. That's it.

\n
static void optimalReverseTrick(int[] nums, int k) {\n    int n = nums.length;\n    k = k % n;\n    reverse(nums, 0, n - 1);   // reverse everything\n    reverse(nums, 0, k - 1);   // reverse the first k numbers\n    reverse(nums, k, n - 1);   // reverse the rest\n}\n\nstatic void reverse(int[] nums, int left, int right) {\n    while (left < right) {\n        int temp = nums[left];\n        nums[left] = nums[right];\n        nums[right] = temp;\n        left++;\n        right--;\n    }\n}\n
\n

This is O(n) time and O(1) extra space meaning it does not need any second array at all. It rotates the array in place. I tested it with [1,2,3,4,5,6,7] and k=3 and it gave [5,6,7,1,2,3,4], which is correct. I also checked what happens if k is bigger than the array size like k=5 on a 3-number array and the trick still works because I take k % n first.

\n

I explained to the interviewer why the reverse trick works: rotating right by k means the last k numbers move to the front and the first n-k numbers move to the back, but their own order inside each group does not change. Reversing everything once flips both groups, then reversing each group again inside itself puts each group back in the right order, but now they are in the right spots too.

\n

Follow-Up Questions

\n

1. What if k is 0, does your rotate function still work?

\n

Yes, I said if k is 0, none of the reverse calls actually move anything meaningful in a way that changes the final order, since reversing the \"first 0 elements\" and reversing \"elements from index 0 to n-1\" (the whole array again) still lands back on the same array after the full reverse and the two half reverses cancel out correctly. I mentioned I'd still want to test this edge case directly instead of just assuming it.

\n

Problem 2: All Elements in Two Binary Search Trees

\n

Leetcode Link: All Elements in Two BSTs

\n

You get two Binary Search Trees (BSTs). You need to return all the numbers from both trees, combined into one single sorted list.

\n

For this one, I knew the right idea quickly, because I remembered an important fact about BSTs: if you do an in-order traversal of a BST (visit left side, then the node, then right side), you always get the numbers in sorted order for free. No extra sorting needed.

\n

So my plan was: do an in-order traversal of tree 1 to get a sorted list. Do an in-order traversal of tree 2 to get another sorted list. Then merge these two sorted lists into one, the same way you merge two lists in merge sort.

\n
static void inorder(TreeNode node, List<Integer> out) {\n    if (node == null) return;\n    inorder(node.left, out);\n    out.add(node.val);\n    inorder(node.right, out);\n}\n\nstatic List<Integer> optimal(TreeNode root1, TreeNode root2) {\n    List<Integer> list1 = new ArrayList<>();\n    List<Integer> list2 = new ArrayList<>();\n    inorder(root1, list1);\n    inorder(root2, list2);\n\n    List<Integer> merged = new ArrayList<>();\n    int i = 0, j = 0;\n    while (i < list1.size() && j < list2.size()) {\n        if (list1.get(i) <= list2.get(j)) merged.add(list1.get(i++));\n        else merged.add(list2.get(j++));\n    }\n    while (i < list1.size()) merged.add(list1.get(i++));\n    while (j < list2.size()) merged.add(list2.get(j++));\n    return merged;\n}\n
\n

I did point out the slower way too, just to show I understood why my way was better: you could throw every number from both trees into one big list and then sort that list at the end. That works, but sorting takes O((m+n) log(m+n)) time. My way skips the sorting step completely and just merges, which is O(m+n) time faster and it uses the special sorted property of a BST instead of ignoring it.

\n

I tested this on two small trees and got the correct merged, sorted list both ways, so I was confident the faster method was right, not just faster.

\n

Follow-Up Questions

\n
\n

1. For the two-BST problem, does it matter if the trees are not balanced?

\n

No I said in-order traversal visits every node no matter how the tree is shaped, so it still gives a sorted list even for a very lopsided tree. The time complexity is still based on the number of nodes, not the shape.

\n

2. Could you solve the two-BST problem without collecting the full list into memory first?

\n

I said you could use two iterators (using an explicit stack for each tree's in-order traversal) and pull one value at a time from whichever tree has the smaller \"next\" value, similar to how you would merge two linked lists lazily. I said this would help if the final merged list needs to be streamed instead of stored fully in memory, but for this problem, since we need to return the whole list anyway, the simpler two-list-then-merge approach is easier to write correctly under interview time pressure.

\n
\n

Round 3: Mixed Round One Coding Problem Plus a Personal Conversation (60 minutes)

\n

This round started with a short coding problem. I honestly don't remember the exact question anymore it was somewhere between easy and medium and I was able to solve it, but the details did not stay in my memory the way the other two problems did.

\n

After the coding part, the conversation became more personal and relaxed. The interviewer asked about my hobbies. I told them I like open-source work, blogging and photography. Then they asked how I keep up with new tech trends. I said I follow tech blogs, go to meetups, try out new frameworks on my own time and do coding challenges on sites like LeetCode and Codewars. They also asked how I balance my job and learning new things. I said I make time for side projects, go to conferences when I can and learn a lot just from talking to other people on my team.

\n

This round felt less like a test and more like a normal conversation between two people who both like building things. I think being honest and specific here mattered more than giving a \"perfect\" answer.

\n

Round 4: DSA Plus Code Review (60 minutes, 1 problem)

\n

After a quick introduction, I was given one coding problem directly.

\n

The Problem: Kth Smallest Element in a Sorted Matrix

\n

Leetcode Link: Kth Smallest Element in a Sorted Matrix

\n

You get a square matrix (grid of numbers) where every row is sorted left to right and every column is sorted top to bottom. You need to find the k-th smallest number in the whole matrix.

\n

My first idea (using a heap): I said I could use a min-heap (a small-number-comes-out-first structure). I put the first number of every row into the heap, since the first number of a sorted row is always the smallest in that row. Then I pop the smallest number from the heap and every time I pop a number from some row, I push the next number from that same row into the heap. I do this k times and the last number I pop is the answer.

\n
static int heapApproach(int[][] matrix, int k) {\n    int n = matrix.length;\n    PriorityQueue<int[]> minHeap = new PriorityQueue<>((a, b) -> a[0] - b[0]);\n    for (int row = 0; row < n; row++) {\n        minHeap.offer(new int[]{matrix[row][0], row, 0});\n    }\n    int result = -1;\n    for (int i = 0; i < k; i++) {\n        int[] top = minHeap.poll();\n        result = top[0];\n        int row = top[1], col = top[2];\n        if (col + 1 < n) {\n            minHeap.offer(new int[]{matrix[row][col + 1], row, col + 1});\n        }\n    }\n    return result;\n}\n
\n

This works and it is faster than just flattening the whole matrix into one list and sorting it (which would be the true brute force way, at O(n² log n²) time). The heap way is around O(k log n) time.

\n

The interviewer then asked me if I could make it even faster. That question is what pushed me toward binary search.

\n

My best idea (binary search on the answer): Instead of searching through positions in the matrix, I searched through possible values. I know the smallest possible answer is the top-left number and the largest possible answer is the bottom-right number. I picked the middle value between these two and counted how many numbers in the matrix are less than or equal to that middle value. If that count is smaller than k, the real answer must be bigger than my middle guess, so I search the upper half of the value range next. Otherwise, I search the lower half (including the middle value itself).

\n

Counting how many numbers are less than or equal to a guess can be done in O(n) time using a neat \"staircase\" walk: start at the bottom-left corner of the matrix and move up or right depending on whether the current number is too big or small enough.

\n
static int optimalBinarySearch(int[][] matrix, int k) {\n    int n = matrix.length;\n    int lo = matrix[0][0], hi = matrix[n - 1][n - 1];\n    while (lo < hi) {\n        int mid = lo + (hi - lo) / 2;\n        int count = countLessOrEqual(matrix, mid);\n        if (count < k) lo = mid + 1;\n        else hi = mid;\n    }\n    return lo;\n}\n\nstatic int countLessOrEqual(int[][] matrix, int target) {\n    int n = matrix.length;\n    int count = 0, row = n - 1, col = 0; // start bottom-left\n    while (row >= 0 && col < n) {\n        if (matrix[row][col] <= target) {\n            count += row + 1; // everything above this cell in the same column is also <= target\n            col++;\n        } else {\n            row--;\n        }\n    }\n    return count;\n}\n
\n

This runs in about O(n log(max - min)) time, where max - min is the range between the smallest and largest number in the matrix. It does not depend on k at all, which makes it a nice improvement when k is large.

\n

I tested my binary search answer against both the brute-force sort and the heap approach, on the classic example matrix [[1,5,9],[10,11,13],[12,13,15]] with k=8 and all three gave the same answer: 13.

\n

The Dry Run

\n

The interviewer asked me to do a dry run using a sample matrix, going through my binary search step by step on paper showing the lo, hi, mid and the count at each step, until the two pointers met. This part was actually good practice for me, because saying each step out loud forced me to make sure I really understood my own code, not just that it happened to work.

\n

The Code Review Part

\n

After the coding problem, I was shown a few small code snippets and asked to point out bugs, bad habits or ways to improve them. Here are the kinds of things I was looking for, with real examples:

\n

Comparing objects with == instead of .equals(). In Java, comparing two Integer objects with == compares whether they are the exact same object in memory, not whether they hold the same value. For small numbers (between -128 and 127), Java happens to reuse the same cached objects, so == can look like it works until you try it with bigger numbers.

\n
Integer a = 200;\nInteger b = 200;\nSystem.out.println(a == b);       // false! surprising if you expect true\nSystem.out.println(a.equals(b));  // true, correct way to compare values\n
\n

Off-by-one errors in loops. A loop like for (int i = 0; i <= arr.length; i++) will try to read one position past the end of the array, causing a crash.

\n
for (int i = 0; i <= arr.length; i++) { // should be < not <=\n    sum += arr[i]; // crashes on the last loop with ArrayIndexOutOfBoundsException\n}\n
\n

Building strings with += inside a loop. Every time you use += on a String inside a loop, Java creates a brand new String and copies everything so far into it. For a small loop this doesn't matter, but for a big loop it gets very slow, very fast. I actually timed this difference: building a string of 60,000 numbers using += took about 3.2 seconds, while doing the exact same thing with a StringBuilder took about 2 milliseconds over a thousand times faster.

\n
// Slow\nString result = \"\";\nfor (int i = 0; i < n; i++) result += i;\n\n// Fast\nStringBuilder sb = new StringBuilder();\nfor (int i = 0; i < n; i++) sb.append(i);\nString result = sb.toString();\n
\n

Pointing out real, specific problems like these, instead of just saying \"this looks fine,\" is what I think this part of the round was really checking for.

\n

Round 5: Behavioral Round (60 minutes)

\n

This last round had no coding at all. The interviewer asked about my past work experience, why I wanted to join Adobe and some general behavioral questions about how I work and think. It felt more like a friendly conversation than a test and it was a nice, calm way to end the whole process.

\n

Biggest Learnings

\n

Looking back at all five rounds, I noticed one pattern in myself: almost every time, my first idea worked, but it was not the fastest idea. The rotate array problem, the kth-smallest-in-matrix problem both times, I started with something simple and correct and only got to the best version after the interviewer gently asked, \"Can you do better?\" That question was never mean or tricky. It was just a normal, expected part of the round. Getting comfortable hearing that question, instead of feeling like it means you did something wrong, made a big difference in how calm I felt.

\n

Preparation Tips

\n\n

Interview Preparation Resources

\n
\n

How to Identify and Approach Two Pointer Problems?

\n

How to Identify and Approach Sliding Window Patterns in DSA

\n

Binary Search Explained: A Beginner's Guide With Real Examples

\n

Graph Traversal (DFS and BFS) Explained with Examples

\n

How to Identify and Approach Backtracking Problems

\n

How to Identify and Approach Dynamic Programming Questions

\n

How to Approach Any DSA Interview Problem: Complete Step-by-Step Guide

\n

Real Interview Experiences: Google, Amazon and Meta

\n

The Ultimate Interview Practice Sheet for FAANG Interviews

\n
\n

FAQs

\n
\n

1. How many rounds does the Adobe SDE interview have?

\n

In my case, 5 rounds: an aptitude and MCQ test, a DSA coding round, a mixed coding-and-personal round, a DSA-plus-code-review round and a final behavioral round.

\n

2. What kind of coding questions does Adobe ask for SDE roles?

\n

I was asked Rotate Array, All Elements in Two Binary Search Trees and Kth Smallest Element in a Sorted Matrix. The topics covered arrays, BSTs, heaps and binary search.

\n

3. Does Adobe ask about Operating Systems and DBMS?

\n

Yes, in the very first round. It was all multiple choice questions, covering processes, threads, memory, normalization, joins, indexing and SQL optimization.

\n

4. Does Adobe include a code review round?

\n

In my loop, yes. After solving a coding problem in Round 4, I was shown small code snippets and asked to spot bugs and bad practices, not just write new code.

\n

5. Is the Adobe SDE interview very hard?

\n

I would call it a solid 3 out of 5. None of the problems were extremely hard on their own, but almost every round expected me to go from a simple first answer to a better, faster one and to clearly explain my thinking the whole way.

\n
\n

Conclusion

\n

Five rounds, four coding problems and a lot of \"can you do better than that?\" questions along the way. If you take one thing from my experience, let it be this: it is completely fine to start with a slow, simple idea. What matters is that you can explain why it is slow and then work your way to something better, out loud, step by step.

","categoryId":363,"subCategoryId":145,"contentFormat":5,"blogId":197,"userId":"MjlfNF84LVsyOThdMm4tdENfQU5nZV9fSXQ=","title":"My Adobe SDE Interview Experience (Aug 2026) 5 Rounds, Selected","url":"my-adobe-sde-interview-experience-aug-2026-5-rounds-selected","bannerImage":"","seoDescription":"Real Adobe SDE interview: 5 rounds, 4 DSA problems (Rotate Array, BSTs, Kth Smallest Matrix), code review & behavioral round. Full solutions + tips.","generatedOn":"2026-08-23T15:58:28","updatedOn":"2026-08-30T06:46:29"},"popularContents":[{"id":167,"title":"Meesho SDE-1 Online Assessment Interview Experience (Remote) - Rejected","url":"meesho-sde-1-online-assessment-interview-experience-remote-rejected","description":null,"seoDescription":"Read a real Meesho SDE-1 online assessment experience with coding questions, DSA topics, solutions, difficulty level, preparation tips and interview insights.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329906Z","viewCount":0},{"id":122,"title":"Zepto SDE-1 Interview Experience (Backend Developer) : Real DSA, LLD, Chess Game Design","url":"zepto-sde-1-interview-experience-backend-developer-real-dsa-lld-chess-game-design","description":null,"seoDescription":" Zepto SDE-1 Backend Interview Experience covering DSA, Dynamic Programming, LLD, API Design, DB Schema, OOP & Product Company Rounds.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329827Z","viewCount":0},{"id":138,"title":"DSA Patterns for Coding Interviews: Complete LeetCode Roadmap (Beginner to Advanced)","url":"dsa-patterns-for-coding-interviews-complete-leetcode-roadmap-beginner-to-advanced","description":null,"seoDescription":"Master every LeetCode pattern for coding interviews. Learn Arrays, Sliding Window, Graphs, Dynamic Programming, Trees, Heaps and more with 250+ curated problem","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329874Z","viewCount":0},{"id":35,"title":"Cursor vs Copilot : Which AI Coding Assistant Wins in 2025?","url":"cursor-vs-copilot-which-ai-coding-assistant-truly-wins-in-2025","description":null,"seoDescription":"Compare Cursor vs GitHub Copilot on speed, context awareness, multi-file support, pricing and code quality to choose the best AI coding assistant for developers","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329735Z","viewCount":0},{"id":172,"title":"Google L4 Software Engineer III interview experience | Selected","url":"google-l4-software-engineer-iii-interview-experience-selected","description":null,"seoDescription":"Google L4 Software Engineer III interview experience with API design, Googlyness, route matching, graph coding rounds, follow-up questions and tips.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329921Z","viewCount":0},{"id":213,"title":"Amazon SDE II Interview Experience (Bangalore, Selected) ~ Aug 2026","url":"amazon-sde-ii-interview-experience-bangalore-selected-aug-2026","description":null,"seoDescription":"Amazon SDE II interview experience from Bangalore covering 4 rounds, DSA, LLD, system design, Leadership Principles, coding questions and selection.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329937Z","viewCount":0},{"id":135,"title":"Spinny SDE-1 Interview Experience (Selected)","url":"spinny-sde-1-interview-experience-selected","description":null,"seoDescription":"Spinny SDE-1 Interview Experience (Selected) | 4 Rounds Breakdown: Coding, LLD, Java, SQL + Real Interview Questions","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329857Z","viewCount":0},{"id":130,"title":"Rippling SDE-2 Interview Experience (4+ Years Experience) | Offer Received | Coding, LLD & System Design","url":"rippling-sde-2-interview-experience-4-years-experience-offer-received-coding-lld-system-design","description":null,"seoDescription":"Detailed Rippling SDE-2 interview experience with complete 5 rounds, coding questions, rules engine design, system design and preparation tips.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329842Z","viewCount":0},{"id":139,"title":"Blinkit (Eternal) SDE-1 Interview Experience (June 2026) – Offer Received","url":"blinkit-eternal-sde-1-interview-experience-june-2026-offer-received","description":null,"seoDescription":"Blinkit SDE-1 interview experience with a 30 LPA offer. Covers House Robber DP, ticket booking system design, culture fit round and tips.","contentType":5,"generatedOn":"2026-10-14T22:22:43.732989Z","viewCount":0},{"id":118,"title":"JioHotstar Staff Software Engineer Interview Experience (Bangalore)","url":"jiohotstar-staff-software-engineer-interview-experience-bangalore","description":null,"seoDescription":"JioHotstar Staff Software Engineer interview experience covering Uber system design, API rate limiter LLD, leadership rounds, bar raiser and HR insights.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329783Z","viewCount":0}],"latestContents":[{"id":219,"title":"6 Tools That Made My Life Easier as a Software Engineer","url":"6-tools-that-made-my-life-easier-as-a-software-engineer","description":null,"seoDescription":"The 6 developer tools I use daily as a software engineer: Git, VS Code, Docker, Postman, Chrome DevTools, and AI assistants, with real tips, mistakes, and trade","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329742Z","viewCount":0},{"id":218,"title":"When Should a Business Use Multiple AI Agents Instead of One?","url":"when-should-a-business-use-multiple-ai-agents-instead-of-one","description":null,"seoDescription":"Single agent or multi-agent AI? Learn the 4 signals that justify splitting agents by knowledge, permissions, and risk, plus routing and handoff tips.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329785Z","viewCount":0},{"id":216,"title":"AI in Clinical Trials Market Estimated to Experience a Hike in Growth by 2035","url":"ai-in-clinical-trials-market-estimated-to-experience-a-hike-in-growth-by-2035","description":null,"seoDescription":"The exclusive information about market dynamics serves as a valuable guide to predict economic scenarios and initiatives taken to enhance future growth. Our mar","contentType":5,"generatedOn":"2026-10-14T22:22:43.73298Z","viewCount":0},{"id":217,"title":"AI in Clinical Trials Market Estimated to Experience a Hike in Growth by 2035","url":"ai-in-clinical-trials-market-estimated-to-experience-a-hike-in-growth-by-2035","description":null,"seoDescription":"The exclusive information about market dynamics serves as a valuable guide to predict economic scenarios and initiatives taken to enhance future growth. Our mar","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329816Z","viewCount":0},{"id":215,"title":"What Happens When an AI Agent Doesn't Know the Answer?","url":"what-happens-when-an-ai-agent-doesnt-know-the-answer","description":null,"seoDescription":"Most AI agents fail quietly. They guess instead of saying \"I don't know.\" Here's how to design better fallback and human-handoff behavior.","contentType":5,"generatedOn":"2026-10-14T22:22:43.732983Z","viewCount":0},{"id":214,"title":"Greedy Algorithms Explained: How They Work, When They Fail and How to Use Them","url":"greedy-algorithms-explained-how-they-work-when-they-fail-and-how-to-use-them","description":null,"seoDescription":"Learn greedy algorithms step by step with C# code Dijkstra, Huffman coding, knapsack and MSTs plus when greedy fails and how to prove it's correct","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329848Z","viewCount":0},{"id":213,"title":"Amazon SDE II Interview Experience (Bangalore, Selected) ~ Aug 2026","url":"amazon-sde-ii-interview-experience-bangalore-selected-aug-2026","description":null,"seoDescription":"Amazon SDE II interview experience from Bangalore covering 4 rounds, DSA, LLD, system design, Leadership Principles, coding questions and selection.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329862Z","viewCount":0},{"id":212,"title":"How to Get 10x Better AI Answers Without Writing Better Prompts : 10 Proven Techniques","url":"how-to-get-10x-better-ai-answers-without-writing-better-prompts-10-proven-techniques","description":null,"seoDescription":"Get better AI answers without complex prompts. Learn 10 practical techniques using context, examples, tools, feedback, and verification.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329877Z","viewCount":0},{"id":211,"title":"I Interviewed for a Microsoft SDE I Role. Here's Everything That Happened.","url":"i-interviewed-for-a-microsoft-sde-i-role-heres-everything-that-happened","description":null,"seoDescription":"My real Microsoft SDE I interview experience, all 4 rounds, the exact DSA problems with fully tested solutions, the WhatsApp system design round","contentType":5,"generatedOn":"2026-10-14T22:22:43.732991Z","viewCount":0},{"id":140,"title":"PolicyBazaar Software Development Engineer (SDE) Interview Experience | DSA, Core CS & System Design","url":"policybazaar-software-development-engineer-sde-interview-experience-dsa-core-cs-system-design","description":null,"seoDescription":"Detailed PolicyBazaar SDE interview experience covering 3 rounds: DSA coding, core CS assessment and system design with key learnings and insights.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7329926Z","viewCount":0}],"relatedContents":[{"id":209,"title":"Adobe Computer Scientist 1 Interview Experience: Real Questions, Solutions & Tips","url":"adobe-computer-scientist-1-interview-experience-real-questions-solutions-tips","description":null,"seoDescription":"Real Adobe CS-1 interview experience covering C++, DSA questions, coding solutions, reschedules, rejection, interview challenges and preparation tips.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7392674Z","viewCount":0},{"id":180,"title":"My Adobe Interview Experience for Android MTS-2 (SDE-III Level) ~ Full Breakdown","url":"my-adobe-interview-experience-for-android-mts-2-sde-iii-level-full-breakdown","description":null,"seoDescription":"Adobe MTS-2 Android interview experience covering Android basics, coroutines, DSA, system design, hiring manager round, coding questions and tips.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7392744Z","viewCount":0},{"id":156,"title":"Adobe MTS-2 Interview Experience | DSA, System Design, DevOps & Hiring Manager Round","url":"adobe-mts-2-interview-experience-dsa-system-design-devops-hiring-manager-round","description":null,"seoDescription":"Adobe MTS-2 interview experience with DSA, system design, DevOps, DBMS, OS, OOP, hiring manager round, coding questions and preparation tips.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7392761Z","viewCount":0},{"id":12,"title":"Adobe Software Engineer 2 Interview Experience","url":"adobe-software-engineer-2-interview-experience","description":null,"seoDescription":"Adobe SDE-2 interview experience with DSA, LLD, Java, C++, LRU Cache, coding questions, solutions, interview rounds and preparation tips","contentType":5,"generatedOn":"2026-10-14T22:22:43.7392774Z","viewCount":0},{"id":13,"title":"Adobe Software Engineer 2 Interview Experience","url":"adobe-software-engineer-2-interview-experience","description":null,"seoDescription":"Adobe SDE-2 interview experience with Java, DSA, SQL, API basics, testing, behavioral rounds, coding questions, solutions and preparation tips.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7392789Z","viewCount":0},{"id":213,"title":"Amazon SDE II Interview Experience (Bangalore, Selected) ~ Aug 2026","url":"amazon-sde-ii-interview-experience-bangalore-selected-aug-2026","description":null,"seoDescription":"Amazon SDE II interview experience from Bangalore covering 4 rounds, DSA, LLD, system design, Leadership Principles, coding questions and selection.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7392824Z","viewCount":0},{"id":211,"title":"I Interviewed for a Microsoft SDE I Role. Here's Everything That Happened.","url":"i-interviewed-for-a-microsoft-sde-i-role-heres-everything-that-happened","description":null,"seoDescription":"My real Microsoft SDE I interview experience, all 4 rounds, the exact DSA problems with fully tested solutions, the WhatsApp system design round","contentType":5,"generatedOn":"2026-10-14T22:22:43.739287Z","viewCount":0},{"id":140,"title":"PolicyBazaar Software Development Engineer (SDE) Interview Experience | DSA, Core CS & System Design","url":"policybazaar-software-development-engineer-sde-interview-experience-dsa-core-cs-system-design","description":null,"seoDescription":"Detailed PolicyBazaar SDE interview experience covering 3 rounds: DSA coding, core CS assessment and system design with key learnings and insights.","contentType":5,"generatedOn":"2026-10-14T22:22:43.7392885Z","viewCount":0},{"id":135,"title":"Spinny SDE-1 Interview Experience (Selected)","url":"spinny-sde-1-interview-experience-selected","description":null,"seoDescription":"Spinny SDE-1 Interview Experience (Selected) | 4 Rounds Breakdown: Coding, LLD, Java, SQL + Real Interview Questions","contentType":5,"generatedOn":"2026-10-14T22:22:43.7392899Z","viewCount":0}]}}},"source":{"isMobile":false}}; window.__CLIENT_RENDER__ = false;