Type Challenges Judge

Two Sum

提出詳細

type TNum<N extends number, Acc extends unknown[] = []> = Acc["length"] extends N ? Acc : TNum<N, [...Acc, unknown]>; type Add<A extends number, B extends number> = A extends number ? B extends number ? [...TNum<A>, ...TNum<B>]["length"] : never : never; type TwoSum<T extends number[], U extends number, TUsed extends number[] = [], Acc extends number = never> = T["length"] extends TUsed["length"] ? U extends Acc ? true : false : T extends [infer L extends number, ...infer R extends number[]] ? TwoSum<[...R, L], U, [...TUsed, L], Acc | Add<R[number], L>> : never
提出日時2025-01-22 15:23:39
問題Two Sum
ユーザーookkoouu
ステータスAccepted
テストケース
import type { Equal, Expect } from '@type-challenges/utils' type cases = [ Expect<Equal<TwoSum<[3, 3], 6>, true>>, Expect<Equal<TwoSum<[3, 2, 4], 6>, true>>, Expect<Equal<TwoSum<[2, 7, 11, 15], 15>, false>>, Expect<Equal<TwoSum<[2, 7, 11, 15], 9>, true>>, Expect<Equal<TwoSum<[1, 2, 3], 0>, false>>, Expect<Equal<TwoSum<[1, 2, 3], 1>, false>>, Expect<Equal<TwoSum<[1, 2, 3], 2>, false>>, Expect<Equal<TwoSum<[1, 2, 3], 3>, true>>, Expect<Equal<TwoSum<[1, 2, 3], 4>, true>>, Expect<Equal<TwoSum<[1, 2, 3], 5>, true>>, Expect<Equal<TwoSum<[1, 2, 3], 6>, false>>, ]