Code Room
CodingMediumcod-g031
Subject KnapsackLevel Mid–Senior~25 minCommon in Algorithms & data structures interviewsIndustries Software development

Question

Given a non-negative integer array nums and an integer target, you must prepend either a '+' or a '-' to every element and concatenate them into an arithmetic expression. Return the number of distinct sign assignments whose expression evaluates to target. The array has up to 20 elements, each in [0, 1000], and the sum of all elements does not exceed 1000.

Implement
find_target_sum_ways(nums: list[int], target: int) → int
Examples
in[[1,1,1,1,1],3]out5
What a strong answer looks like

State your approach and its time/space complexity out loud before you optimize. Handle the edge cases (empty input, duplicates, overflow), and say why you chose this over the brute force. Green tests are the floor, not the grade.

Vibe coding: describe the solution in plain language (or narrate it) and the coach grades your approach. Generating runnable code from your description is coming next.

Run or narrate your approach, then ask the coach.