
Leetcode
Y—X
这个作者很懒,什么都没留下…
展开
-
Leetcode___只出现一次的数字Ⅰ和Ⅱ
解题思路:由于题目已告知数组是整数数组且是非空的,只有某个元素只出现一次,其它元素均出现两次。我们自然而然地会相到位运算中的“异或”,两个相同的数字异或的结果为 0,由于数组中其它元素均出现两次,只有一个元素出现一次,所以可以遍历整个数组,让所有数组元素异或,得到的结果就是只出现一次的那个元素。说明:a ^ a = 0; 0 ^ a = a代码示例:class Solution {public: int singleNumber(vector<int>& nums.原创 2021-04-03 19:12:07 · 170 阅读 · 0 评论 -
260. 只出现一次的数字 III
题目:给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。方法一:分组异或先对所有数字进行一次异或,得到两个出现一次的数字的异或值。在异或结果中找到任意为 1 的位。根据这一位对所有的数字进行分组。在每个组内进行异或操作,得到两个数字。class Solution {public: vector<int> singleNumber(vector<int>&原创 2021-04-02 14:12:17 · 145 阅读 · 0 评论 -
剑指 Offer 28. 对称的二叉树
对称的二叉树请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */boo原创 2021-03-15 21:42:08 · 93 阅读 · 0 评论 -
Leetcode第138题——复制带随机指针的链表
题目分析: 这道题要我们拷贝一个链表并返回拷贝链表的头节点。我们画图来分析思路:1.如图所示我们拷贝每一个节点,并连接到原节点的后面//1.拷贝节点,连接到每一个原节点的后边 struct Node* cur = head; while(cur) { struct Node* copy = (struct Node*)malloc(sizeof(struct Node)); copy->next = NULL; copy-&g..原创 2020-12-30 14:23:52 · 459 阅读 · 0 评论 -
Leetcode第142题——环形链表2
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。 说明:不允许修改给定的链表。解题思路:1.使用快慢指针判断有无环:让慢指针每次走一步,快指针每次走俩步。不理解为什么快慢指针可以来判断有无环的可以看上一篇博客:环形链表1slow = slow->原创 2020-12-26 14:13:40 · 2399 阅读 · 6 评论 -
Leetcode第141题——环形链表1
给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。解题思路:1.我们创建俩个指针:快指针fast , 慢指针slow。2.让慢指针每次走一步,快指针每次走俩步原创 2020-12-25 23:17:08 · 520 阅读 · 5 评论