Day82 | 灵神 | 快慢指针 重排链表
Day82 | 灵神 | 快慢指针 重排链表143.重排链表143. 重排链表 - 力扣(LeetCode) 思路: 笔者直接给跪了,这个难度真是mid吗 直接去看灵神的视频 环形链表II【基础算法精讲...
深度学习与神经网络 | 邱锡鹏 | 第三章学习笔记
三、线性模型softmax是用的改进版一对其余,而剩下的都是二分类的线性模型,即g(f(x))形式,不一样的是他们使用了不同的损失函数,这会导致他们学出来的模型不一样,所以取的名字也不一样 3.1 分类问题示例图像识别,垃圾邮件过滤,文档归类,情感分类这些都是分类问题 3.2 线性分类模型fx是判别函数,g(f(x))是决策函数 0和1表示正类和负类 一条线把两个分类隔开 有了模型下一个就是学习准则就是损失函数,01损失函数不可求导,无法转化为最优化问题所以要重新选择一个更好的损失函数 多分类不可以用一个函数表示,那就表示要用多个函数表示 虽然是改进的一对其余,但是仍然是不可导的,那说明我们还是得去找一个更好的损失函数 3.3...
Day81 | 灵神 | 快慢指针 链表的中间结点 环形链表
Day81 | 灵神 | 快慢指针 链表的中间结点 环形链表876.链表的中间结点876. 链表的中间结点 - 力扣(LeetCode) 思路: 设置两个指针,一个快指针r一个慢指针l 初始都是头结点 我们要求的是中间节点 所以快指针走两步,慢指针走一步,那么就可以在快指针走到末尾时慢指针就指向中间结点 链表长度为奇数 链表长度为偶数 所以就是快指针为空或者下一个为空,那就停止循环 完整代码: 12345678910111213class Solution {public: ListNode* middleNode(ListNode* head) { ListNode *l=head; ListNode *r=head; while(r!=nullptr&&r->next!=nullptr) { l=l->next; r=r->next->next; } ...
Day80 | 灵神 | 反转链表 翻倍以链表形式表示的数字
Day80 | 灵神 | 反转链表 翻倍以链表形式表示的数字2816.翻倍以链表形式表示的数字2816. 翻倍以链表形式表示的数字 - 力扣(LeetCode) 思路: 看做是两个head相加就直接转变为昨天写的两数相加II了 2. 两数相加 - 力扣(LeetCode) 445. 两数相加 II - 力扣(LeetCode) Day79 | 灵神 | 反转链表 两数相加 两数相加II | Darlingの妙妙屋 Day79 | 灵神 | 反转链表 两数相加 两数相加II-CSDN博客 完整代码: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152class Solution {public: //反转链表 ListNode* reverseList(ListNode* head) { ListNode *p=head; ListNode *pre=nullptr; ...
26考研 | 王道 | 数据结构 | 第四章 串
第四章...
Day79 | 灵神 | 反转链表 两数相加 两数相加II
Day79 | 灵神 | 反转链表 两数相加 两数相加II2.两数相加2. 两数相加 - 力扣(LeetCode) 思路: 笔者一开始想的是在原数组上面进行改动,但是那个不知道两个链表长度就很麻烦,一个链表结束后还得遍历另外一个链表,并且最后返回结果也只能返回长的链表,这真的很麻烦 所以要新创建一个链表,用新创建的链表节点记录val的值 确定循环终止条件:只要l1 l2 或者进位有一个不为0 那就是要继续循环,继续创建新的节点 也不需要新的变量,用进位carry来记录值即可 最后carry除以10,大于10就是1表示有进位,小于10就是0,也就是没进位 完整代码: 1234567891011121314151617181920212223242526272829303132class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { //建立虚拟头结点 ListNode res; ListNode...
26考研 | 王道 | 数据结构 | 第三章 栈和队列
第三章 栈和队列栈和队列有相同的逻辑结构,即都是线性结构 3.1. 栈注:卡特兰数要记住 本小节完整代码栈的顺序存储123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293#include<iostream>using namespace std;const int MAXSIZE = 10;/*1. * *InitStack(&S):初始化栈。构造一个空栈 S,分配内存空间。 * *2. * *DestroyStack(&S):销毁栈。销毁并释放栈 S 所占用的内存空间。 * *3. * *Push(&S, x):进栈。若栈 S 未满,则将 x 加入使其成为新的栈顶元素。 * *4. * *Pop(&S, &x):出栈。若栈 S...
Day78 | 灵神 | 反转链表 两两交换链表中的节点
Day78 | 灵神 | 反转链表 两两交换链表中的节点24.两两交换链表中的节点24. 两两交换链表中的节点 - 力扣(LeetCode) 思路: 这道题就是下面这道题的k==2的情况 25. K 个一组翻转链表 - 力扣(LeetCode) 基本思路和92. 反转链表 II - 力扣(LeetCode)一样 用第一个例子[1,2,3,4,5]作为说明,就是说,步骤为 1.建立虚拟头结点t,作为要反转部分[1,2]的前一个节点,以后每反转一部分都要更新和保存反转部分的前一个节点 2.再次建立一个临时节点q保存要反转部分的后一个结点[3] 3.建立两个指针指向要交换的两个节点,cur指向2,pre指向1 4.反转指针把2指向1 5.把反转部分接到原来链表上 5.1 [1]的next即pre的next指向[3],即q,这是把后面接好了 5.2 ...
Day77 | 灵神 | 反转链表 反转链表 反转链表II K个一组翻转链表
Day77 | 灵神 | 反转链表 反转链表 反转链表II K个一组翻转链表206.反转链表206. 反转链表 - 力扣(LeetCode) 思路: 笔者之前做过所以做的很快,简单来说用p指向现在的结点,pre指向p的前一个节点,用指向p的下一个节点 然后就是让p->next指向前一个节点pre,这是反转 再让前一个结点变成p,p变成q,这是往后继续遍历 也可以看灵神的视频讲解,有图示很快理解 反转链表【基础算法精讲 06】_哔哩哔哩_bilibili 完整代码: 123456789101112131415class Solution {public: ListNode* reverseList(ListNode* head) { ListNode *p=head; ListNode *pre=nullptr; while(p!=nullptr) { ListNode* q=p->next; p->next=pre; ...
Hexo执行hexo d报错 Connection closed by 127.0.0.1 port 22如何解决
Hexo执行hexo d报错 Connection closed by 127.0.0.1 port 22出现了如下报错 1234567891011Connection closed by 127.0.0.1 port 22fatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.FATAL Something's wrong. Maybe you can find the solution here: https://hexo.io/docs/troubleshooting.htmlError: Spawn failed at ChildProcess.<anonymous> (E:\myblog\node_modules\hexo-deployer-git\node_modules\hexo-util\lib\spawn.js:51:21) at...