小红书后端开发春招笔试

选择题 数据库事务的四大特性 事务的四大特性主要是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 产生死锁的四个必要条件 互斥条件、不剥夺条件、请求并保持条件、循环等待条件 给你一个入栈序列,问有多少种出栈可能 卡特兰数,如有$n$ 个入栈,那么出栈有 $\frac{1}{n+1}C_{2n}^{n} = C_{2n}^{n}-C_{2n}^{n+1}$ 种可能,1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, … 楼梯有9个台阶,每次只能走1个或2个台阶,有多少种走法。 斐波那契数列,1, 2, 3, 5, 8, 13, 21, 34, 55 算法题 给你一个由0和1组成的数组,你可以有一次翻转区间的机会,即将1变成0,将0变成1,问此数组中1最多能有多少个。 给你一张 $M \times N $的地图,然后还会有 $K$ 个障碍(障碍坐标已给出),每次只能向右或者向下移动,从地图的左上角到达地图的右下角,问一共有多少种走法。 最大礼物价值。

March 13, 2022 · 1 min · Loyio Hex

使用差分数组解决leetcode798题:得分最高的最小轮调问题

题目描述的链接如下: 得分最高的最小轮调 首先,刚拿到这道题我首先想到的当然是暴力解法,循环每一个$k$,计算得分,然后得分最大的$k$,即为所求,很明显,这种方法,肯定会导致TLE(Time Limit Exceed)。没想到方法的我,自然就是去看官方的题解。 首先,是这个题目的两个关键题眼: 是怎么轮调的,$n$ 为数组的长度,$k$ 为数组中的一个下标(index),轮调完后,$k$ 到数组的最后一个元素$(k, n-1)$ 这段区间会移动到原数组的最前面,然后就是$k$前面的那一段(顺序不变)$(0,k-1)$,会附加到后面来。 然后就是记分,任何值小于或等于其索引的项都可以记作一分,也就是说,如果索引值为 $i$ ,然后 $nums[i]=x$ , 当 $x = nums[i] \le i$ 时可以记一分。也可以反过来理解,当索引值大于等于当前值的时候可以记一分,即 $i \ge nums[i] = x$ 记一分。 数组 $nums$ 中的一个元素 $x$ ,只有当 $x$ 所在下标范围为 $[x, n-1]$ 时,才会记一分,当 $x$ 下标为 $[0, x-1]$ 时不记分。 假设元素 $x$ 的当前下标为 $i$ ,如果轮调下标为 $k$ , 那么 $x$ 经过轮调过后的下标就为 $(n-k+i) \bmod n$ (或者写为 $(i-k+n) \bmod n$ ),这里最后为什么要取$n$的模,是防止超过数组范围,而如果元素 $x$ 要记一分,那么它的下标就应该是 $(n-k+i) \bmod n \ge x$ ,等价于 $ (n+i-x) \bmod n \ge k$ ,又因为元素 $x$ 记一分的下标有 $n-x$个,所以说,我们可以得到 $k \ge (i+1) \bmod n$ , 因为 $k$ 的的位置总是被移动到下标为0的地方,$k$ 的前一个值总是被移动到 $n-1$ 的位置,也就是不管怎么算都是符合条件(当前下标值大于等于当前值)的位置。 ...

March 9, 2022 · 2 min · Loyio Hex

在Mac上如何找到hosts文件

Hosts 文件是更改您的计算机查看特定网站的方式的重要工具。虽然大多数用户永远不需要更改其 Hosts 文件,但 Web 开发人员或用户可能需要修改文件以查看仍在开发中的新站点。 要使您的计算机显示您的测试网站而不是实时站点,您必须将测试站点的 IP 地址以及域名添加到 Hosts 文件中。只要该信息包含在您的主机文件中,您的浏览器就会重定向请求以显示指定 IP 地址上的站点。这使我们能够在不修改生产站点的 DNS 的情况下测试功能。 找到Mac上的Hosts文件 首先打开终端,可以是自带的terminal,也可以是其他的(比如iterm2) 为了照顾到所有用户,我们再这里使用自带的terminal,选择Go->Utilities,点击打开 找到terminal,双击打开 然后,输入下面的命令 sudo vim /etc/hosts 如果没有vim,可以通过brew安装vim(参考文章安装brew 如何使用强大的软件包管理器Homebrew) 打开后如图所示 vim的操作请上网自行搜索 移动到底部,新建一行,左侧为ip地址,右侧为域名,更改完后如下图所示(仅做示范) 最后wq保存即可

March 7, 2022 · 1 min · Loyio Hex

如何使用强大的软件包管理器Homebrew

安装Homebrew 打开官网 brew.sh ,首先印入眼帘的就是 Install Homebrew 打开Mac上的Terminal或者其他的终端软件(iTerm),将下面的命令复制到里面,然后回车,就可以了。 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" Formulae和Cask Formulae Homebrew作为一个软件包管理器,一开始是Red-hat的Yum,和Ubuntu的apt-get等Linux上的包管理器在Mac平台的第三方替代品,用于安装与卸载软件,当然也包括自动处理依赖。 这也是Homebrew的核心功能,homebrew-core ,也就是Formulae,通过homebrew,我们可以轻松的安装CLI软件(大多都是开源软件),而不用去考虑依赖,当然它也支持本地编译,也就是说我没也不用考虑系统的版本,或者处理器是arm还是x86的,也就是在本地执行的 Build From Source 。 Cask Homebrew Cask 作为homebrew 的扩展,主要是用来安装一些GUI图形软件,或者大型的二进制软件。这些软件各色各样,简单来说是命令行版的App Store,当然不能在App Store上架的软件是占多数的,他可以说是大大简化了用户在安装软件时的操作,比如我们需要安装微信。正常来说,我们有两种操作。 在App Store中搜索微信,点击安装,然后等着它慢慢转圈。 打开微信官网 https://weixin.qq.com ,选择系统,然后下载。下载玩后,点开安装文件dmg,再将其拖到Applications文件夹 很显然,上面的操作非常麻烦,或许你会说,直接用App Store很简单啊,当然如果你能忍耐点击Get,然后点击Install,然后又要输入你的Apple ID账号密码(有时候直接用指纹就行),其实也没啥麻烦的。 事实上很多在Mac App Store中上架的软件都是阉割版,沙盒化运行的。很多功能都需要经过Apple的审核才能上线,某些情况下官网中的版本功能是比较全面的,另一方面,大部分软件,你在Mac App Store上是搜不到,很多开发者也并没有要支付100美元一年的打算。就比如Chrome浏览器。你还是得去官网下载的。 前面啰嗦了很多,下面我们来看一下利用homebrew安装微信需要的操作。 打开终端 输入brew install wechat 回车,等待下载安装,然后你的程序坞(Launchpad)中就有了微信 当然,有时候你会问,我怎么知道微信是wechat。一开始的确是很难记得这些的,你需要打开brew.sh ,搜索一下 两者区别 记得之前的版本安装Fomulae和Cask是有不同的 安装Formulae brew install <software-name> 安装Cask brew install --cask <software-name> 然后现在的版本,应该是解决了cask和formulae的冲突问题,统一用 brew install <software-name> 就行了 安装与卸载 在前面有提及过如何使用brew安装软件 我在这里说一下,我安装软件一般是怎么操作的。 安装 官网搜索 对于国内的软件,如果不记得name,我都是需要去官网用中文搜索一下的,比如爱奇艺 ...

March 7, 2022 · 1 min · Loyio Hex

在Mac(M1 Pro)上通过源码编译Fritzing最新版本

因为要设计一下硬件的走线,在Arduino Forum上看到大家都是用的Fritzing,于是便也想着下载安装使用,打开官网,只看到 Pay & Download, 上面有着两个单选框(必选),一个是8欧元和25欧元。 显然第一次使用,我是舍不得这些钱的,便想着搜索Cracked Version, 未果,返回到官网,发现原来这个软件在Github是开源的,主要用Qt,便想着尝试自己编译一下。 1.获取源代码 主程序代码库 git clone https://github.com/fritzing/fritzing-app.git 以及一些其他组件 git clone https://github.com/fritzing/fritzing-parts.git 2.下载安装Qt 根据官方文档现在最新用到的Qt版本是5.15.2,为了方便起见,我直接通过Brew安装Qt5,至于如何安装和使用brew,请看我的这篇文章如何使用强大的软件包管理器Homebrew brew install qt5 然后官方是建议安装Qt Creator,但我在后面看到Mac可以直接使用Xcode编译,刚好自己电脑上有Xcode,于是便想着先不安装Qt Creator。(首先申明未成功,可能环境不同) 使用Qt和Xcode构建Fritzing 下载安装Xcode,如果已经安装了,进入下一步。 完成之前的准备工作 使用 QT bin 文件夹中的软件工具 qmake。cd到您的 Fritzing 代码文件夹并执行以下操作: cd /Users/you/Documents/fritzing-app qmake -spec macx-xcode 构建成功后,打开 Fritzing.xcodeproj. 从构建菜单项中选择 Build and go. 我在第三步就卡了,最后报错 objc[8754]: Class AMSupportURLConnectionDelegate is implemented in both /usr/lib/libamsupport.dylib (0x1fd9a3678) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x107f282c8). One of the two will be used. Which one is undefined. objc[8754]: Class AMSupportURLSession is implemented in both /usr/lib/libamsupport.dylib (0x1fd9a36c8) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x107f28318). One of the two will be used. Which one is undefined. Project ERROR: Configure tests are not supported with the XCODE Makefile generator. 应该是我的这个Xcode版本不兼容 ...

March 7, 2022 · 2 min · Loyio Hex

Leetcode个人刷题记录

记录Leetcode题解链接,完整测试代码见loypt/leetcode No. Problem(leetcode-cn) Problem Solution Link(题解) 1 两数之和 Two Sum Issues Blog 2 两数相加 Add Two Numbers Issues Blog 3 无重复字符的最长子串 Longest Substring Without Repeating Characters Issues Blog 4 寻找两个正序数组的中位数 Median of Two Sorted Arrays Issues Blog 5 最长回文子串 Longest Palindromic Substring Issues Blog 6 Z 字形变换 Zigzag Conversion Issues Blog 7 整数反转 Reverse Integer Issues Blog 8 字符串转换整数 (atoi) String to Integer (atoi) Issues Blog 9 回文数 Palindrome Number Issues Blog 10 正则表达式匹配 Regular Expression Matching Issues Blog 11 盛最多水的容器 Container With Most Water Issues Blog 12 整数转罗马数字 Integer to Roman Issues Blog 13 数字转整数 Roman to Integer Issues Blog 14 最长公共前缀 Longest Common Prefix Issues Blog 15 三数之和 3Sum Issues Blog 16 最接近的三数之和 3Sum Closest Issues Blog 17 电话号码的字母组合 Letter Combinations of a Phone Number Issues Blog 18 四数之和 4Sum Issues Blog 19 删除链表的倒数第 N 个结点 Remove Nth Node From End of List Issues Blog 20 有效的括号 Valid Parentheses Issues Blog 21 合并两个有序链表 Merge Two Sorted Lists Issues Blog 22 括号生成 Generate Parentheses Issues Blog 23 合并K个升序链表 Merge k Sorted Lists Issues Blog 24 25 26 27 28 29 30 31 题目版权©️leetcode.com所有 ...

March 2, 2022 · 1 min · Loyio Hex

Loyio's Handbook Table of Contents

数学 直角坐标系下的图像 初等数学常用公式 [PDF:下载] 高等数学 [PDF:下载] 线性代数 [PDF:下载] 概率论与数理统计 [PDF:下载]

July 31, 2021 · 1 min · Loyio Hex

场论初步

1.方向导数 方向导数的计算公式 设三元函数 $u=u(x,y,z)$ 在点 $P_0(x_0, y_0, z_0)$ 处可微分,则 $u=u(x,y,z)$ 在点 $P_0$ 处沿任意方向 $l$ 的方向导数都存在,且 $$ \frac{\partial u}{\partial l}\Bigl|_{P_{0}} =u'_{x}( P_{0})\cos \alpha +u'_{y}( P_{0})\cos \beta +u'_{z}( P_{0})\cos \gamma $$ 二元函数的情况与三元函数类似 2.梯度 在一个数量场中,函数在所给定点处沿不同的方向,其方向导数一般是不相同的。为研究沿哪一个方向其方向导数最大、或增加的速度最快,于是引入了一个重要的概念—梯度 设三元函数 $u=u(x,y,z)$ 在点 $P_0(x_0,y_0,z_0)$ 处具有一阶偏导数,则定义 $$ \operatorname{grad}\ u\Bigl|_{P_{0}} =( u'_{x}( P_{0}) ,\ u'_{y}( P_{0}) ,\ u'_{z}( P_{0})) $$ 为函数$u=u(x,y,z)$ 在点$P_0$处的梯度 3.方向导数与梯度的关系 由方向导数的计算公式 $\frac{\partial{u}}{\partial{l}}\bigl|_{P_0} = (u_x’(P_0),u_y’(P_0),u_z’(P_0))$与梯度的定义 $$ \operatorname{grad}\ u\Bigl|_{P_{0}} =( u'_{x}( P_{0}) ,\ u'_{y}( P_{0}) ,\ u'_{z}( P_{0})) $$ 可以得到 ...

July 10, 2021 · 1 min · Loyio Hex

常用函数图像

(一)直角坐标系下的图像 1. 常见图像 ⑤三角函数 (1)正弦函数与余弦函数 (二)极坐标系下的图像 1. 描点法 (1)心形线 极坐标方程: 水平方向:$r=a(1-\cos{\theta})(a>0)$ 垂直方向:$r=a(1-\sin{\theta})(a>0)$ 直角坐标方程: $x^2+y^2+ax=a\sqrt{(x^2+y^2)}$ 或$x^2+y^2-ax=a\sqrt{(x^2+y^2)}$ 参数方程: $x=a(2\cos{(t)}-\cos{(2t)})$ $y=a(2\sin{(t)}-\sin{(2t)})$

July 9, 2021 · 1 min · Loyio Hex

一阶微分方程与一阶线性方程的求解

一.可分离变量的一阶微分方程 如果能够把一阶微分方程中所有关于 $y$ 的部分 (包括 $\mathrm{d}y$) 放在一边, 所有关于 $x$ 的部分 (包括 $\mathrm{d}x$) 放在另一边, 则该微分方程被称为是可分离变量的. 例如, 方程 $\mathrm{dy}/\mathrm{dx} = ky$ 可重新整理为 $$ \frac{1}{ky}\mathrm{d}y = \mathrm{d}x, $$ 就是可分离变量的。 然后继续计算的方法就是两遍加积分号求积分。然后再整理求得 $y$。 最终求得的全解,可能会包含一些常数变量。 如果在题干中,涉及到初值时,还是使用以上的求解方法,最后将初值代入求得的全解中,就可以得到未知常数$C$了。 二.一阶线性方程的求解 1.前言 形如 $$ \frac{\mathrm{d}y}{\mathrm{d}x}+p(x)y = q(x) $$ 其中 $p$ 和 $q$ 是关于 $x$ 的函数,这样的方程就称为一阶线性微分方程, 它可能不是可分离变量的, 甚至连线性看起来也不很明显! 例如, $$ \frac{\mathrm{d} y}{\mathrm{~d} x}+6 x^{2} y=\mathrm{e}^{-2 x^{3}} \sin (x) $$ 就不像是线性的, 然而这个方程确实是一阶线性的, 因为 $y$ 和 $\mathrm{d}y/\mathrm{d}x$ 的幂次都是 1. 而方程 $$ \frac{\mathrm{d} y}{\mathrm{~d} x}+6 x^{2} y^{3}=\mathrm{e}^{-2 x^{3}} \sin (x) $$ 不是一阶线性的, 因为 $y^3$ 不是 $y$ 的一次 ...

July 8, 2021 · 2 min · Loyio Hex