class Solution {
public:
int singleNumber(vector<int>& nums) {
}
};
136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例 1:
输入: [2,2,1] 输出: 1
示例 2:
输入: [4,1,2,1,2] 输出: 4
原站题解
cpp 解法, 执行用时: 16 ms, 内存消耗: 16.8 MB, 提交时间: 2023-10-11 10:41:34
class Solution { public: int singleNumber(vector<int>& nums) { for ( int i = 1; i < nums.size(); ++i ) nums[0] ^= nums[i]; return nums[0]; } };
java 解法, 执行用时: 1 ms, 内存消耗: 43.5 MB, 提交时间: 2023-10-11 10:41:03
class Solution { public int singleNumber(int[] nums) { for ( int i = 1; i < nums.length; ++i ) nums[0] ^= nums[i]; return nums[0]; } }
golang 解法, 执行用时: 16 ms, 内存消耗: 6.1 MB, 提交时间: 2021-07-30 10:08:08
func singleNumber(nums []int) int { ans := nums[0] for i := 1; i < len(nums); i++ { ans ^= nums[i] } return ans }
golang 解法, 执行用时: 16 ms, 内存消耗: 6.1 MB, 提交时间: 2020-11-18 22:10:05
func singleNumber(nums []int) int { for i := 1; i < len(nums); i++ { nums[0] ^= nums[i] } return nums[0] }
python3 解法, 执行用时: 56 ms, 内存消耗: 15 MB, 提交时间: 2020-11-18 22:08:56
class Solution: def singleNumber(self, nums: List[int]) -> int: for i in range(1, len(nums)): nums[0] ^= nums[i] return nums[0]
python3 解法, 执行用时: 60 ms, 内存消耗: N/A, 提交时间: 2018-09-05 22:22:20
class Solution: def singleNumber(self, nums): """ :type nums: List[int] :rtype: int """ nums.sort() #先对数组排序 if len(nums) == 1: return nums[0] if nums[0] != nums[1]: return nums[0] if nums[-1] != nums[-2]: return nums[-1] for i in range(1, len(nums)-1): if nums[i] not in [nums[i-1], nums[i+1]]: return nums[i]