力扣第136题 只出现一次的数

力扣第136题 只出现一次的数

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

输入: [2,2,1]
输出: 1
示例 2:

输入: [4,1,2,1,2]
输出: 4

class Solution {
    public:
    int singleNumber(vector<int>& nums)
    {
        int len = nums.size();
        for (int i = 1; i < len; i++)
        {
            nums[0] ^= nums[i];
        }
        return nums[0];
    }
};

原文地址:https://www.cnblogs.com/woodjay/p/12398257.html

时间: 2024-10-13 15:54:58

力扣第136题 只出现一次的数的相关文章

力扣第260题 只出现一次的数字 III

力扣第260题 只出现一次的数字 III 给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次. 找出只出现一次的那两个元素. 示例 : 输入: [1,2,1,3,2,5] 输出: [3,5] 注意: 结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案. 你的算法应该具有线性时间复杂度.你能否仅使用常数空间复杂度来实现? class Solution { public: vector<int> singleNumber(vector<int&

力扣第70题:爬楼梯

力扣第70题:爬楼梯 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶. 1 阶 + 1 阶 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶. 1 阶 + 1 阶 + 1 阶 1 阶 + 2 阶 2 阶 + 1 阶 ? int climbStairs(int n) { if (n <= 1) { re

力扣第95题 不同的二叉搜索树II

力扣第95题 不同的二叉搜索树II 给定一个整数 n,生成所有由 1 ... n 为节点所组成的二叉搜索树. struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; vector<TreeNode*> generateTree(int start, int end) { vector<TreeNode*> v

力扣第452题 用最少数量的箭引爆气球

力扣第452题 用最少数量的箭引爆气球 class Solution { public: int findMinArrowShots(vector<vector<int>>& points) { int len = points.size(); if (len == 0) { return 0; } sort(points.begin(), points.end(), [](const vector<int> &pl1, const vector<

力扣第1013题 将数组分成和相等的三部分

力扣第1013题 将数组分成和相等的三部分 class Solution { public: bool canThreePartsEqualSum(vector<int>& A) { int sum = accumulate(A.begin(), A.end(), 0); if (sum % 3 != 0) return false; int temp = sum / 3; int len = A.size(); int left = 0, right = len - 1; int l

力扣第300题 最长上升子序列

力扣第300题 最长上升子序列 class Solution { public: int lengthOfLIS(vector<int>& nums) { int size = nums.size(); if (size == 0) { return 0; } vector<int> vec; int len = 1; vec.push_back(nums[0]); for (int i = 1; i < size; i++) { if (vec[len - 1] &

力扣第820题 单词的压缩编码

力扣第820题 单词的压缩编码 class TrieNode { public: map<char, TrieNode*> children; }; class Solution { public: void GetNum(TrieNode * node, int num, int& count) { if (node == NULL || node->children.size() == 0) { count += num + 1; return; } for (map<

力扣第887题 鸡蛋掉落

力扣第887题 鸡蛋掉落 class Solution { public: int superEggDrop(int K, int N) { vector<vector<int>> dp(K+1, vector<int>(N+1, 0)); int m = 0; for (; dp[K][m] < N;) { m++; for (int k = 1; k <= K; k++) dp[k][m] = 1 + dp[k-1][m-1] + dp[k][m-1];

2020年3月底到4月第1周做题记录(力扣)

写在前面的话: 多看书,整完论文,deadline驱动,加油. 做题时间: 2020年3月30日~2020年4月5日 记录: 总共道题,时间为min. 最近更新时间: 202003230 圆圈中最后剩下的数字 链接: https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/ 类名: 考察点: 环.模拟 解题过程:力扣3月每日1题 题目的意思是用n个数字形成一个圆圈,数字范围为0到n-1,数