曾格的github

随笔分类 -  C++

学好C++,走遍天下都不怕
摘要:主线程与子线程 默认情况下,主线程执行完后,那么所有子线程也会结束,整个程序执行完毕;除非用detach()分离子线程与主线程。 Thread:一个标准库中的类 join():阻塞主线程;加join() 的地方往往是主线程需要子线程的运行结果。 detach():分离子线程;当子程序很多时,让主线程 阅读全文
posted @ 2021-09-15 20:07 曾格 阅读(679) 评论(0) 推荐(0)
摘要:并发 进程是资源分配的基本单位,切换进程时需要重新读取内存; 比如说:QQ登录时,就会把QQ的相关代码(指令)从磁盘读到内存中,再读入CPU,存入寄存器中,再通过ALU执行指令;如果现在想登录微信,就需要为微信重新分配内存空间,然后把微信的代码拷贝到CPU寄存器中再执行。 而线程是资源调度的基本单位 阅读全文
posted @ 2021-09-15 19:06 曾格 阅读(131) 评论(0) 推荐(0)
摘要:NC41 最长无重复子数组 1 class Solution { 2 public: 3 /** 4 * 5 * @param arr int整型vector the array 6 * @return int整型 7 */ 8 int maxLength(vector<int>& arr) { 9 阅读全文
posted @ 2021-09-07 15:39 曾格 阅读(139) 评论(0) 推荐(0)
摘要:NC15 求二叉树的层序遍历 1 /** 2 * struct TreeNode { 3 * int val; 4 * struct TreeNode *left; 5 * struct TreeNode *right; 6 * }; 7 */ 8 9 class Solution { 10 pub 阅读全文
posted @ 2021-09-07 14:28 曾格 阅读(52) 评论(0) 推荐(0)
摘要:描述 一条仅包含字母‘A’-‘Z’的消息用下列的方式加密成数字 'A' -> 1 'B' -> 2 ... 'Z' -> 26 现在给出加密成数字的密文,请判断有多少种解密的方法 例如: 给出的密文为“13”,可以解密为"AC"(1 3) 或者"M"(13). 所以密文"13"的解密方法是2种. 求 阅读全文
posted @ 2021-08-09 14:04 曾格 阅读(98) 评论(0) 推荐(0)
摘要:描述 地上有一个rows行和cols列的方格。坐标从 [0,0] 到 [rows-1,cols-1]。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于threshold的格子。 例如,当threshold为18时,机器人能够进 阅读全文
posted @ 2021-08-09 09:27 曾格 阅读(74) 评论(0) 推荐(0)
摘要:描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 求解思路 遍历两个相邻的节点,如果相等,就继续向后删除值相同的节点。 删除重复节点前,需要一个节点来记录重复节点前的前缀 阅读全文
posted @ 2021-07-31 20:11 曾格 阅读(53) 评论(0) 推荐(0)
摘要:描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“nowcoder. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a n 阅读全文
posted @ 2021-07-29 16:21 曾格 阅读(45) 评论(0) 推荐(0)
摘要:描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 求解思路: 思路1: 首先编写函数,判断某一个数是否属于丑数。 然后通过循环找到第index个丑数。 1 in 阅读全文
posted @ 2021-07-29 15:26 曾格 阅读(54) 评论(0) 推荐(0)
摘要:描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 这题重点不是求解,而是lambda表达式和仿函数的使用,以减轻我们的编码工作量。 1 struct Com { 2 阅读全文
posted @ 2021-07-28 23:30 曾格 阅读(49) 评论(0) 推荐(0)
摘要:描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)。 下图是一个含有5个结点的复杂链表。图中实线箭头表示nex 阅读全文
posted @ 2021-07-28 22:33 曾格 阅读(40) 评论(0) 推荐(0)
摘要:描述 输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 解决思路: 注意这里的路径是根节点到叶子节点的遍历顺序,所以难度并不是很大(思路类似于dfs,单写起来比dfs更简单) 其实遍历目标路径 阅读全文
posted @ 2021-07-28 20:39 曾格 阅读(45) 评论(0) 推荐(0)
摘要:描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。(ps:我们约定空树不是二叉搜索树) 求解思路: 通过递归依次判断子序列是否满足二叉搜索树构建条件。 代码: 1 class Solution { 阅读全文
posted @ 2021-07-28 19:24 曾格 阅读(36) 评论(0) 推荐(0)
摘要:描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]] 则依次打印出数字 [1,2,3,4,8,12,16,15,14,13,9,5,6,7,11, 阅读全文
posted @ 2021-07-28 18:46 曾格 阅读(52) 评论(0) 推荐(0)
摘要:描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 求解思路: 首先肯定是找到树A中等于树B根节点的节点。 A和B按照同样的遍历顺序比较,如果全相同A就是子树。 代码: 1 class Solution { 2 public: 3 // 肯定是先在A中找 阅读全文
posted @ 2021-07-28 15:55 曾格 阅读(60) 评论(0) 推荐(0)
摘要:描述 输入一个字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。 阅读全文
posted @ 2021-07-28 14:49 曾格 阅读(50) 评论(0) 推荐(0)
摘要:运行时,如何弹出cmd命令窗口:将launch.json文件中的 externalConsole设置为true,并按F5运行(不要按右上角的运行按钮) 如何cin:先再命令窗口通过g++ *.cpp生成a.exe文件,然后继续输入.\a.exe即可 阅读全文
posted @ 2021-07-23 21:03 曾格 阅读(103) 评论(0) 推荐(0)
摘要:描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的 阅读全文
posted @ 2021-07-23 12:12 曾格 阅读(30) 评论(0) 推荐(0)
摘要:设rear=6,front=4,mid=front+(rear-front)>>1; mid应该等于5的,但结果却是3。 错误原因:“+”运算符的优先级高于">>"运算符 阅读全文
posted @ 2021-07-21 19:27 曾格 阅读(53) 评论(0) 推荐(0)

Live2D