利用 Github Actions 自动部署 Hexo 博客

介绍Github Actions 可以很方便实现 CI/CD 工作流,类似 Travis 的用法,来帮我们完成一些工作,比如实现自动化测试、打包、部署等操作。当我们运行 Jobs 时,它会创建一个容器 (runner),容器支持:Ubuntu、Windows 和 MacOS 等系统,在容器中我们可以安装软件,利用安装的软件帮我们处理一些数据,然后把...

阅读全文

C++初始化列表

类对象的构造顺序是:1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员;2.进入构造函数后在构造函数中执行一般赋值与计算。 使用初始化列表有两个原因:原因1.必须这样做: 《C++ Primer》中提到在以下三种情况下需要使用初始化成员列表: 需要初始化的数据成员是对象的情况(这里包含了继承情况下,通过显示调用父类的构造函数对父类数据成员进行初始...

阅读全文

初始化方法-基本到kaiming

为什么需要初始化初始化的原因, 防止每一层的输出太大或者太小,导致梯度反向传播过程中,梯度爆炸或者梯度消失。 不能采用统一值得原因,因为统一值得初始化会使得每一层网络在不同通道学到得特征相同。 上述原因都会导致,网络模型不能收敛。 简单例子得说明假如我们有一个输入x ,定义为 1>>> x = torch.randn(512) x是&...

阅读全文

链表反转

leetcode 206 单链表反转12输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL 迭代方法首先设置pre,cur,lat三个指针 12pre cur latnull 1 -> 2 -> 3 -> 4 -> 5 -...

阅读全文

柔性数组

这个问题是阿里的一个面试题。当时没有很清楚,答得很差,特地实验看一下运行结果。 在结构体中定义了一个char*指针,与定义一个零元素的char数组有什么区别? 作用常用来构成缓冲区。比起指针,用空数组有这样的优势: 不需要初始化,数组名直接就是所在的偏移; 不占任何空间,指针需要占用int长度空间,空数组不占任何空间。 “这个数组不占用任何内存”,意味...

阅读全文

c++构造函数

调用拷贝构造函数的几种情况 当类中成员有指针变量、类中有动态内存分配时常常需要用户自己定义拷贝构造函数。 在什么情况下系统会调用拷贝构造函数: (1)用类的一个对象去初始化另一个对象时(2)当函数的形参是类的对象时(也就是值传递时),如果是引用传递则不会调用(3)当函数的返回值是类的对象或引用时 代码示例: 1234567891011121314151...

阅读全文

516.最长回文子序列

题目 给定字符串s,求其最长回文子序列(可以非连续)的长度 DP 当已知一个序列是回文时,添加首尾元素后的序列存在两种情况,一种是首尾元素相等,则最长回文的长度加2,当首尾元素不相等,则最长回文序列为仅添加首元素时的最长回文与仅添加尾元素时的最长回文之间的最大值。我们可以用$dp[i][j]$表示$s[i…j]$中的最长回文序列,而状态转移方程则是 ...

阅读全文

53.最大子序列和

对于给定序列,得到最大和的子序列 Example: 123>Input: [-2,1,-3,4,-1,2,1,-5,4],>Output: 6>Explanation: [4,-1,2,1] has the largest sum = 6. brute force 遍历所有的可能答案,得到最大子序列和。 12345678910def...

阅读全文

122.Best Time to Buy and Sell Stock II

与121不同的在于,121只能操作一次,而这个是可以操作任意次。 123Input: [7,1,5,3,6,4]Output: 7Explanation: Buy on day 2 (price = 1) and sell on day 3 (price = 5), profit = 5-1 = 4.Then buy on day 4 (price = 3...

阅读全文

70. climbing stairs

描述 n阶楼梯,每次一步或者两步,一共有多少种方法 [Solutions](../prob_70_Climbing Stairs.py) brute_force $f(n)=f(n-1)+f(n-2)$ 显然有,到第n阶楼梯有两种方法,从n-1过去,和n-2过去。即到n阶的方法等于这两种方法的和 1234def brute_for...

阅读全文