函数的独占时间
题目描述有一个 单线程 CPU 正在运行一个含有 n 道函数的程序。每道函数都有一个位于 0 和 n-1 之间的唯一标识符。
函数调用 存储在一个 调用栈 上 :当一个函数调用开始时,它的标识符将会推入栈中。而当一个函数调用结束时,它的标识符将会从栈中弹出。标识符位于栈顶的函数是 当前正在执行的函数 。每当一个函数开始或者结束时,将会记录一条日志,包括函数标识符、是开始还是结束、以及相应的时间戳。
给你一个由日志组成的列表 logs ,其中 logs[i] 表示第 i 条日志消息,该消息是一个按 “{function_id}:{“start” | “end”}:{timestamp}” 进行格式化的字符串。例如,”0:start:3” 意味着标识符为 0 的函数调用在时间戳 3 的 起始开始执行 ;而 “1:end:2” 意味着标识符为 1 的函数调用在时间戳 2 的 末尾结束执行。注意,函数可以 调用多次,可能存在递归调用 。
函数的 独占时间 定义是在这个函数在程序所有函数调用中执行时间的总和,调用其他函数花费的时间不算该函数的独占时间。例如,如果一个函数被调用两次,一次调用执行 ...
最大矩形
题目描述给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。
示例示例1:123输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]输出:6解释:最大矩形如上图所示
示例2:12输入:matrix = []输出:0
示例3:12输入:matrix = [["0"]]输出:0
示例4:12输入:matrix = [["1"]]输出:1 ...
数组中的字符串匹配
题目描述给你一个字符串数组 words ,数组中的每个字符串都可以看作是一个单词。请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词。
如果你可以删除 words[j] 最左侧和/或最右侧的若干字符得到 word[i] ,那么字符串 words[i] 就是 words[j] 的一个子字符串。
示例示例1:1234输入:words = ["mass","as","hero","superhero"]输出:["as","hero"]解释:"as" 是 "mass" 的子字符串,"hero" 是 "superhero" 的子字符串。["hero","as"] 也是有效的答案。
示例2:123输入:words = ["leetcode","et","code"]输出 ...
柱状图中最大的矩形
题目描述给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。
求在该柱状图中,能够勾勒出来的矩形的最大面积。
示例示例1:123输入:heights = [2,1,5,6,2,3]输出:10解释:最大的矩形为图中红色区域,面积为 10
示例2:12输入: heights = [2,4]输出: 4
提示:1231 <= heights.length <=1050 <= heights[i] <= 104
代码暴力解法:这种解法简单,但是效率低,不通过。
遍历123456789101112131415161718192021222324class Solution {public: int largestRectangleArea(vector<int>& heights) { int max = heights[0]; int len = heights.size(); for (int i = 0; i < len; ++i) ...
在二叉树中增加一行
题目描述给定一个二叉树的根 root 和两个整数 val 和 depth ,在给定的深度 depth 处添加一个值为 val 的节点行。
注意,根节点 root 位于深度 1 。
加法规则如下:
给定整数 depth,对于深度为 depth - 1 的每个非空树节点 cur ,创建两个值为 val 的树节点作为 cur 的左子树根和右子树根。cur 原来的左子树应该是新的左子树根的左子树。cur 原来的右子树应该是新的右子树根的右子树。如果 depth == 1 意味着 depth - 1 根本没有深度,那么创建一个树节点,值 val 作为整个原始树的新根,而原始树就是新根的左子树。
示例示例1:12输入: root = [4,2,6,3,1,5], val = 1, depth = 2输出: [4,1,1,2,null,null,6,3,1,5]
示例2:12输入: root = [4,2,null,3,1], val = 1, depth = 3输出: [4,2,null,1,1,3,null,null,1]
提示:12345节点数在 [1, 104] ...
设计循环队列
题目描述设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。
循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。
你的实现应该支持如下操作:
1234567MyCircularQueue(k): 构造器,设置队列长度为 k 。Front: 从队首获取元素。如果队列为空,返回 -1 。Rear: 获取队尾元素。如果队列为空,返回 -1 。enQueue(value): 向循环队列插入一个元素。如果成功插入则返回真。deQueue(): 从循环队列中删除一个元素。如果成功删除则返回真。isEmpty(): 检查循环队列是否为空。isFull(): 检查循环队列是否已满。
示例12345678910MyCircularQueue circularQueue = new MyCircularQueue(3); // 设置长度为 3circula ...
电脑从手机引导PE,linuxtogo,wintogo等
说明能在手机上启动 PE,wintogo,linuxtogo 等,因 wintogo 驱动问题,这里只介绍 PE 和 linuxtogo。
准备工具一台 root 的手机。DriveDroid app,微 pe 工具箱。
drivedroid:
1https://www.drivedroid.io/
微 pe
1https://www.wepe.com.cn/
开始打开 DriveDroid 给予需要的权限,出现 DriveDroid Boot Tester 即成功。
微 PE打开 DriveDroid,点击右下角的加号,选择 Create blank image 创建一个空镜像,内存根据自己的 PE 大小决定,一般 500mb 即可。
创建好后点击我们新建的镜像文件,选择 Writable USB on Mass Storage 1 读写挂载,通过数据线连接电脑之后我们就能在电脑上看到一个待初始化的 u 盘,初始化就能看到容量了。
打开微 PE 工具箱,右下角选择安装 PE 到 U 盘。
安装方法: 选择UEFI/Legacy 全能单分区方式,选择刚建立的镜像,其 ...
git将项目上传到github
github首先在 github 上面创造一个 repository
接着来到我们要上传项目的根目录
1234567echo "# test" >> README.mdgit initgit add .git commit -m "version-1"git branch -M maingit remote add origin https://github.com/Moecly/test.git # 换成你自己的仓库地址git push -u origin main
搞定啦。
手机运行linux容器
准备工具一部安卓手机,termux app
注意:
谷歌 play 的 termux 已经不更新,请去 froid 下载最新版本
termux更换源这里以清华源为例
12sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main stable main@' $PREFIX/etc/apt/sources.listapt update && apt upgrade
使用 tmoe 脚本安装
1bash -c "$(curl -Lv gitee.com/mo2/linux/raw/master/debian.sh)"
安装过程根据自己喜好
注意:
非 root 用户在安装容器时不能选择 chroot,chroot 容器性能会比 proot 容器更好。
手机实现BadUsb攻击
BadUsb是什么通过硬件直接插入对方电脑,让对方电脑执行代码,达到干扰、控制主机或者窃取信息等目的。
攻击流程:
Bad-Usb插入后,会模拟键盘鼠标对电脑进行操作,通过这些操作打开电脑的命令终端,并执行一条命令,这条命令将从指定网址下载其他代码并于后台静默运行。这些代码功能包括:窃取信息、反弹shell、发送邮件等,从而实现控制目标机或者窃取信息的目的。
准备工具一部已经 root 的手机,USB Gadget tool,termux app
警告:
没有救砖能力的请勿轻易尝试,造成后果与我无关。
教程USB Gadget Tool首先打开 USB GadgetTool
这里我们选择第二个
点击 Add Function 后选择 keyboard, 再把 Gadget Status 打开
termux换源这里以清华源为例
12sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main stable main@' $P ...