Typora主题定制之数学公式和字体篇
写在前面
最近偏爱一款Typora主题, 叫做Monospace-dark, 其GitHub主页如下:
typora/typora-monospace-theme: A monospace theme for Typora (github.com);
我做了一些修改, 其实就是CSS文件, 放在了dotfile/typora-theme at main · Apocaly-pse/dotfile (github.com);
字体上我用了JetBrainsMono Nerd Font Mono这款支持字符合并的字体, 之前在终端和sublime上用起来还不错, 于是就想着移植到typora了, 但是这也走了很多弯路, 因为我没学过CSS, 都是依靠一点一点尝试和查看文档来做的.
...
常见函数的级数展开式推导
写在前面
最近做极限的题目,很多都要用到泰勒展开(麦克劳林展开),然而一些结论总是记不住,于是在这里总结一些常见的函数的展开式及推导过程,希望可以帮到大家。
定义式
函数$f(x)$在点$x_0$处展开(皮亚诺 Peano 余项)
\[\begin{aligned}
f(x)
&=f(x_0)+\frac{f'(x_0)}{1!}(x-x_0)+\frac{f''(x_0)^2}{2!}(x-x_0)^2+\cdots\\
&=\sum_{k=0}^n \frac{f^{(k)}(x_0)}{k!}(x-x_0)^k+o((x-x_0)^n)
\end{aligned}\]
麦克劳林展开
下面为方便表示,都使用麦克劳林级数的形式(需要注意这样写要满足幂级数收...
C++内存分配方法new与placement new使用方法详解
写在前面
总结一下C++内存分配中的new/delete方法, 以及一个很有意思的工具: placement new.
参考:
cppprimer5ed, pp409, pp726(19.1).
侯捷C++ video
new的基本使用
编译器角度
在使用new分配内存的时候, 例如下面这样:
string *sp = new string("abc"); // 分配并初始化一个string对象
string *sa = new string[10]; // 分配10个默认初始化的string对象
上面的new内存分配, 本质上进行了三个步骤:
new表达式调用一个名为operator new(或operator ne...
验证二叉搜索树的c++实现
写在前面
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。
有效 二叉搜索树定义如下:
节点的左子树只包含 小于 当前节点的数。
节点的右子树只包含 大于 当前节点的数。
所有左子树和右子树自身必须也是二叉搜索树。
提示:
树中节点数目范围在$[1, 10^4]$ 内
$-2^{31} \leq Node.val \leq 2^{31} - 1$.
本质上就是中序遍历的应用, 因为二叉搜索树中序遍历的结果是一个严格的单调增序列.
第一种思路:先存数组, 然后判断
这里我一开始想的是集合去重然后判断排序数组, 但是内存飙升.
class Solution {
public:
bool isValidBST(Tre...
Python与c++语法比较 字符串篇
写在前面
刷lc从Python转向C++, 不只是语法层面, 还要改变很多的API, 这次记录一下C++和Python在字符串方面的一些区别, 供参考.
基本区别
Python字符串是不可变类型, 而C++的String为容器(本质上是一个类的别名, 说容器有点不合适, 因为容器内的元素类型已经被指定为char), 可变类型.
C++
先说一下字符, 是指char类型, 其本质上也是int类型(0~127的ASCII字符, 存在隐式类型转换)
using string = std::basic_string<char>; // string其实是一个类型别名
如果不需要一般的字符串操作, 可以使用vector<char>, 是一种比较纯粹的字符...
Macos中浏览器扩展的目录位置与扩展打包解包方法
写在前面
最近帮人下载浏览器的一个插件, 因为对方没办法访问google的插件中心, 那么就只能通过第三方扩展解压安装的方法了, 但是网上找了一圈都没有我用的浏览器的路径, 这就来总结一下路径的寻找方法吧, 以及推荐一个不错的视频嗅探插件.
环境:
MacOS 12.6
浏览器:Edge, Chromium
找打包路径
Windows的Chrome应用程序支持目录的路径都在:
C:\Users\USERNAME\AppData\Local\Google\Chrome\User Data\Default\Extensions
然而, MacOS的在:(Edge)
/Users/USERNAME/Library/Application Support/Microso...
阿里云服务器安装wireshark图形界面与远程连接配置(使用tigervnc)
写在前面
昨天折腾了一下透视HTTP协议这门课的实验环境, 通过阿里云的轻量应用服务器来完成了, 但是还差一步, 那就是wireshark的安装, 虽然通过apt安装好了, 但是打不开实在是烦人, 后来经过各种搜索, 我发现问题出在了tightvnc上, 这个vnc服务器对qt程序的支持不够好, 那么接下来就来配置一下tigervnc, 这里我还用上了xfce4桌面, 感觉比gnome要舒服一些.
tigervnc文档感觉不是很全, 但是用起来跟tightvnc一样顺手.
其viewer界面是FLTK开发的, 稍后可以学习一下源码.
我在Mac端使用了vnc-viewer, 但是不如tigervnc-viewer的给力, vnc-viewer需要一段时间的连接之后...
反转链表与链表的析构操作(c++)
写在前面
说一下反转链表的操作, 以及在生成链表之后的析构操作, 感觉这两点其实是可以联系起来记忆的.
反转链表
206. 反转链表 - 力扣(LeetCode);
一种trivial的方法当然是遍历存节点然后重新构建链表, 但是这是需要耗费$O(n)$空间的方法, 于是就有下面这种方法, 双指针记录后面未遍历的节点的方法.
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode *cur = head, *pre = nullptr;
while (cur) {
auto tmp = cur->next;
...
共计 465 篇文章,59 页。
您是Zorch的第 个小伙伴
Hits