Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions solutions/0101-0200/0136-single-number/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# 136. Single Number

[LeetCode problem 136](https://leetcode.com/problems/single-number/)

- **Difficulty**: Easy
- **Tags**: array, bit-manipulation

## Description

Given a non-empty array of integers where every element appears twice except
for one, find that single element. Must run in O(n) time using O(1) extra
space.
13 changes: 13 additions & 0 deletions solutions/0101-0200/0136-single-number/solution.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#include "solution.hpp"

namespace leetcode::p0136 {

int solve(const std::vector<int>& nums) {
unsigned result = 0;
for (int num : nums) {
result ^= static_cast<unsigned>(num);
}
return static_cast<int>(result);
}

} // namespace leetcode::p0136
10 changes: 10 additions & 0 deletions solutions/0101-0200/0136-single-number/solution.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#pragma once

#include <vector>

namespace leetcode::p0136 {

// optimized: O(n) time, O(1) space — XOR cancels out every paired value.
int solve(const std::vector<int>& nums);

} // namespace leetcode::p0136
8 changes: 8 additions & 0 deletions solutions/0101-0200/0136-single-number/test.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#include <catch2/catch_test_macros.hpp>

#include "solution.hpp"

TEST_CASE("Problem 136", "[p0136]") {
CHECK(leetcode::p0136::solve({2, 2, 1}) == 1);
CHECK(leetcode::p0136::solve({4, 1, 2, 1, 2}) == 4);
}
37 changes: 0 additions & 37 deletions swift/136.swift

This file was deleted.

Loading