diff --git a/lib/missingNumber/index.ts b/lib/missingNumber/index.ts new file mode 100644 index 0000000..39d30a8 --- /dev/null +++ b/lib/missingNumber/index.ts @@ -0,0 +1,3 @@ +import { missingNumber } from "./missingNumber"; + +export default missingNumber; diff --git a/lib/missingNumber/missingNumber.test.ts b/lib/missingNumber/missingNumber.test.ts new file mode 100644 index 0000000..724c5ee --- /dev/null +++ b/lib/missingNumber/missingNumber.test.ts @@ -0,0 +1,31 @@ +import { describe, it, expect } from "vitest"; +import { missingNumber } from "./missingNumber.ts"; + +describe("missingNumber", () => { + + it("[3, 0, 1] expect 2", () => { + const nums = [3, 0, 1]; + expect(missingNumber(nums)).toBe(2); + }); + + it("[0, 1] expect 2", () => { + const nums = [0, 1]; + expect(missingNumber(nums)).toBe(2); + }); + + it("[9, 6, 4, 2, 3, 5, 7 , 0, 1] expect 8", () => { + const nums = [9, 6, 4, 2, 3, 5, 7, 0, 1]; + expect(missingNumber(nums)).toBe(8); + }); + + it("[0] expect 1", () => { + const nums = [0]; + expect(missingNumber(nums)).toBe(1); + }); + + it("[1, 2] expect 0", () => { + const nums = [1, 2]; + expect(missingNumber(nums)).toBe(0); + }); + +}); diff --git a/lib/missingNumber/missingNumber.ts b/lib/missingNumber/missingNumber.ts new file mode 100644 index 0000000..5b01cc2 --- /dev/null +++ b/lib/missingNumber/missingNumber.ts @@ -0,0 +1,13 @@ +export function missingNumber(nums: number[]) { + + let overallSum = 0; + for (let i = 0; i <= nums.length; i++) { + overallSum += i; + } + + for (const num of nums) { + overallSum -= num; + } + + return overallSum; +};