Go•set-mismatch/solution.go
package main
func findErrorNums(nums []int) []int {
seen := make([]bool, len(nums)+1)
duplicate := -1
for _, value := range nums {
if seen[value] {
duplicate = value
}
seen[value] = true
}
for value := 1; value <= len(nums); value++ {
if !seen[value] {
return []int{duplicate, value}
}
}
return []int{duplicate, -1}
}
Python•set-mismatch/solution.py
class Solution:
def findErrorNums(self, nums: list[int]) -> list[int]:
seen = [False] * (len(nums) + class="syntax-number">1)
duplicate = -class="syntax-number">1
for value in nums:
if seen[value]:
duplicate = value
seen[value] = True
missing = next(value for value in range(class="syntax-number">1, len(nums) + class="syntax-number">1) if not seen[value])
return [duplicate, missing]
TypeScript•set-mismatch/solution.ts
function findErrorNums(nums: number[]): number[] {
const seen = new Array<boolean>(nums.length + class="syntax-number">1).fill(false);
let duplicate = -class="syntax-number">1;
for (const value of nums) { if (seen[value]) duplicate = value; seen[value] = true; }
for (let value = class="syntax-number">1; value <= nums.length; value += class="syntax-number">1) {
if (!seen[value]) return [duplicate, value];
}
return [duplicate, -class="syntax-number">1];
}