Leetcode 46 Permutations Java Solution
// SOLVING THIS WITH AN AI ASSISTANT (2026)
If you are working through this problem with an AI coding assistant — Claude, ChatGPT, Cursor chat, Gemini, GitHub Copilot, Aider, or any agent — the goal isn’t to ask for the answer. It is to use the tool to understand the pattern. The prompt sequence I’d run:
- Spec it back to me first. “In your own words, what is this problem actually testing? What’s the smallest example that fails the naive approach?”
- Brute-force first, optimize after. “Write the simplest correct solution, even if it’s O(n²). Don’t optimize. Just make it correct, with comments explaining each step.”
- Ask for the upgrade. “Now show me the optimal solution. What insight makes it possible? What pattern is this an instance of?”
- Stress-test it. “Generate 10 edge cases — empty input, single element, duplicates, max size, sorted, reverse-sorted. Run my solution against each.”
The pattern matters more than the answer. If the agent just hands you optimized code, you’ve trained yourself to lose interviews.
Given a collection of distinct integers, return all possible permutations.
Example:
Input: [1,2,3] Output: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] Solution 1:
class Solution {
List<List<Integer>> returnList = new ArrayList<>();
int[] used ;
public List<List<Integer>> permute(int[] nums) {
List<Integer> temp = new ArrayList<Integer>();
used = new int[nums.length];
findPermutations(nums, 0, temp);
return returnList;
}
public void findPermutations(int[] nums, int index, List<Integer> temp){
if(index == nums.length){
returnList.add(new ArrayList(temp));
return;
}
for(int i=0;i<nums.length;i++){
if(used[i]!=1){
used[i]=1;
temp.add(nums[i]);
findPermutations(nums, index+1, temp);
temp.remove(temp.size()-1);
used[i] = 0;
}
}
return;
}
}
For the AI-native engineering side of HackerHeap — building MCP servers, comparing agents (Claude Code, Cursor, Windsurf, Codex, Gemini, Copilot), and weekly working code — see the Friday Build newsletter and the MCP archive.