随笔分类 - 题解
摘要:1. 消失的数字 题目链接 题目描述 解题思路 异或操作符支持乘法交换律 > 0^3^0^1 ^0^1^2^3 > 0^0^0^1^1^3^3^2 >相同的值异或为0 > 0^2 >2 int missingNumber(int* nums, int numsSize){ int val = 0;
阅读全文
摘要:1. 复制带随机指针的链表 题目链接 题目描述 解题思路 首先,解这道题必须要理解链表在内存中的表示 字母表示每一个节点在内存中的起始地址, 每一个节点空间的next 存储下一个节点的地址, random存储随机节点的地址 然后理解题目意思, 这道题要求创建一个拷贝链表,每一个拷贝节点的val =
阅读全文
摘要:1. 环形链表 题目链接 题目描述 解题思路 在这道题中, 判断链表是否存在环, 可以转换为快慢指针追击问题 快指针一次走两步, 慢指针一次走一步,当慢指针进环, 快指针追击慢指针 如果快指针追到了慢指针,就可以证明该链表带环 /** * Definition for singly-linked l
阅读全文
摘要:1. 移除链表元素 题目链接 题目描述 解题思路 这道题较好的解法是创建一个新链表, 把不等于val的节点链接到一起, 然后返回新链表的头结点 struct ListNode* removeElements(struct ListNode* head, int val){ struct ListNo
阅读全文
摘要:1. 移除元素 题目链接 要求时间复杂度为O(N), 空间复杂度为O(1) 解法: 双指针 int removeElement(int* nums, int numsSize, int val){ int src = 0, dst = 0; while (numsSize--) { if (nums
阅读全文