刷题总结 | 灵神 | 链表章节
刷题总结 | 灵神 | 链表章节包含视频以及简介中的作业部分,但是不是链表章节所有的题单的题,那个太多了,把视频和作业过完一遍再说吧 标签: 链表 | Darlingの妙妙屋 题单 && 题解Day77 | 灵神 | 反转链表 反转链表 反转链表II K个一组翻转链表-CSDN博客 Day78 | 灵神 | 反转链表 两两交换链表中的节点-CSDN博客 Day79 | 灵神 | 反转链表 两数相加 两数相加II_反转链表 灵神-CSDN博客 Day80 | 灵神 | 反转链表 翻倍以链表形式表示的数字-CSDN博客 Day81 | 灵神 | 快慢指针 链表的中间结点 环形链表-CSDN博客 Day82 | 灵神 | 快慢指针 重排链表-CSDN博客 Day83 | 灵神 | 快慢指针 回文链表-CSDN博客 Day84 | 灵神 | 快慢指针 链表最大孪生和-CSDN博客 Day85 | 灵神 | 前后指针 删除链表中的节点 删除链表的倒数第 N 个结点-CSDN博客 Day86 | 灵神 | 前后指针 删除排序链表中的重复元素...
Day89 | 灵神 | 前后指针 合并两个链表
Day89 | 灵神 | 前后指针 合并两个链表1669.合并两个链表1669. 合并两个链表 - 力扣(LeetCode) 思路: 思路较为简单,就是一个模拟题 找到下标a的前一个结点并用p记录下来,继续遍历b-a+1的长度找到下标为b的节点,记录b的下一个节点为q 把list2接到p后,遍历list2,把末尾节点next指向q即可 完整代码: 123456789101112131415161718192021222324252627282930class Solution {public: ListNode* mergeInBetween(ListNode* list1, int a, int b, ListNode* list2) { ListNode *t=new ListNode; t->next=list1; ListNode *p=t; int length=b-a+1; //找到下标为a的结点的前一节点 while(a--) ...
Day88 | 灵神 | 前后指针 移除链表元素 从链表中移除结点
Day88 | 灵神 | 前后指针 移除链表元素 从链表中移除结点2487.从链表中移除结点2487. 从链表中移除节点 - 力扣(LeetCode) 迭代思路: 凡是你觉得反转链表以后好做的都要毫不犹豫反转链表 这道题是因为如果左边的数都比右边这一个数小的话,我们很难找到从哪个结点开始删除 比如[1,2,3,4,5,6,7,8,9,13],1-9全是要删的,我们不知道从哪里开始进行循环 但是反转以后就很简单了 [13,1,2,3,4,5,6,7,8,9],13之后都是要删的,而且13可作为要删除节点的前一个结点,所以翻转后会好做很多 到这里也知道了其实这道题是倒着找最大值,所以反转后会比较好做,因为反转后变成正着找最大值 完整代码: 1234567891011121314151617181920212223242526272829303132class Solution {public: //206.反转链表 ListNode *reverseList(ListNode *head) { ListNode *pre =...
Day87 | 灵神 | 前后指针 移除链表元素 从链表中移除在数组中存在的节点
Day87 | 灵神 | 前后指针 移除链表元素 从链表中移除在数组中存在的节点203.移除链表元素203. 移除链表元素 - 力扣(LeetCode) 思路: 就是一道easy题目,思路并不难想,就从前往后遍历就行 完整代码: 123456789101112131415161718class Solution {public: ListNode* removeElements(ListNode* head, int val) { ListNode *t=new ListNode; t->next=head; ListNode *p=t; while(p->next) if(p->next->val==val) { ListNode *temp=p->next; p->next=p->next->next; ...
Day86 | 灵神 | 前后指针 删除排序链表中的重复元素 删除排序链表中的重复元素II
Day86 | 灵神 | 前后指针 删除排序链表中的重复元素 删除排序链表中的重复元素II83.删除排序链表中的重复元素83. 删除排序链表中的重复元素 - 力扣(LeetCode) 思路: 就是一道easy题目,思路并不难想,笔者是用两个指针,一个l一个r,他们之间相隔1,然后如果两个的值相等就把r所指向的节点给删了,然后更新r为r的下一个结点。如果值不相等,那自然一起往后走 也可以和灵神一样用一个指针,代码更简洁,但是我感觉两根指针可以把要做的事情想得更清楚一点? 完整代码: 1234567891011121314151617181920212223242526272829303132333435363738394041/*class Solution {public: ListNode* deleteDuplicates(ListNode* head) { if(head==nullptr) return head; ListNode* l=head; ListNode*...
Day85 | 灵神 | 前后指针 删除链表中的节点 删除链表的倒数第 N 个结点
Day85 | 灵神 | 前后指针 删除链表中的节点 删除链表的倒数第 N 个结点237. 删除链表中的节点237. 删除链表中的节点 - 力扣(LeetCode) 思路: 把下一个结点的值复制到当前结点,那当前结点就是下一个结点的前一个结点,然后删除下一个结点即可 完整代码: 1234567891011class Solution {public: void deleteNode(ListNode* node) { *node=*(node->next); /* 相当于 node->val=node->next->val node->next=node->next->next */ }}; 19. 删除链表的倒数第 N 个结点19. 删除链表的倒数第 N 个结点 -...
Day84 | 灵神 | 快慢指针 链表最大孪生和
Day84 | 灵神 | 快慢指针 链表最大孪生和2130.链表最大孪生和2130. 链表最大孪生和 - 力扣(LeetCode) 思路: 比昨天的还要简单,还是一样的思路,找中间节点然后反转链表然后相加 完整代码: 1234567891011121314151617181920212223242526272829303132333435363738class Solution {public: // 876. 链表的中间结点 ListNode* middleNode(ListNode* head) { ListNode* slow = head, *fast = head; while (fast && fast->next) { slow = slow->next; fast = fast->next->next; } return slow; } // 206....
深度学习与神经网络 | 邱锡鹏 | 第四章学习笔记 神经网络
四、神经网络4.1 神经元 w表示每一维(其他神经元)的权重,b可以用来调控阈值,z 经过激活函数得到最后的值a来判断神经元是否兴奋,1就兴奋,0就不兴奋 这就相当于一个简单的线性模型 第二点要求函数和导函数尽可能简单是因为,我们的网络可以设计的比较复杂,所以函数就设计的比较简单,有利于提高网络计算效率 最后一点,函数并不一定是单调递增的,可能局部会递减,但是我们希望的是a可以反映出z的变化 现在复合用的挺多的 非零中心化去w求导,前面是标量,后面seigema...
Day83 | 灵神 | 快慢指针 回文链表
Day83 | 灵神 | 快慢指针 回文链表234.回文链表234. 回文链表 - 力扣(LeetCode) 思路: 昨天虽然重排链表没想出来 但是有了昨天的思路,这道题的思路立马就显而易见了 找中间节点然后翻转后半段,然后一个一个对比,不一样就返回false,退出循环就是true 不过毕竟是个easy题目,也不必这么麻烦,就是把链表值复制到数组然后去前后分别遍历就完事了 完整代码: 12345678910111213141516171819202122232425262728293031323334353637383940class Solution {public: //876.链表的中间节点 ListNode* middleNode(ListNode* head) { ListNode *l=head; ListNode *r=head; while(r!=nullptr&&r->next!=nullptr) { ...
26考研 | 王道 | 数据结构 | 第五章 树
第五章 树 5.1. 树的概念5.1.1. 树的基本定义树:n(n>=0)个节点的有限集合,是一种逻辑结构,当n=0时为空树,且非空树满足: 有且仅有一个特定的称为根的节点 当n>1时,其余结点可分为m (m >0) 个互不相交的有限集合,其中每个集合本身又是一棵树,并且称为根结点的子树 互不相交就是仅有一个前驱 树是一种递归的数据结构 非空树特点: 有且仅有一个根节点 没有后继的结点称为“叶子结点”(或终端节点) 有后继的结点称为“分支结点” (或非终端结点) 除了根节点外,任何一个结点都有且仅有一个前驱 每个结点可以有0个或多个后继 基本术语 祖先结点:从自己出发走到根结点的最短路这条路径上的所有节点都是祖先节点 子孙结点:自己的之下都是子孙节点 双亲结点 (父节点)...