
C++
cx1165597739
这个作者很懒,什么都没留下…
展开
-
208. 实现 Trie (前缀树)
实现一个 Trie (前缀树),包含insert,search, 和startsWith这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.startsWith("app"...原创 2019-09-02 14:41:34 · 128 阅读 · 0 评论 -
P1280 尼克的任务
题目描述尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成。尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束。当尼克到达单位后他就开始干活。如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开...原创 2019-05-27 17:22:04 · 147 阅读 · 0 评论 -
最小年龄的三个职工
题目描述职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来。输入描述:输入第一行包括1个整数N,1<=N<=30,代表输入数据的个数。接下来的N行有N个职工的信息:包括职工号(整数), 姓名(字符串,长度不超过10), 年龄(1<=age<=100)。输出描述:可能有多组测试数据,对于每组数据,输出结果行数为N和3的较...原创 2019-05-13 17:35:26 · 153 阅读 · 0 评论 -
矩阵最大值
题目描述编写一个程序输入一个mXn的矩阵存储并输出,并且求出每行的最大值和每行的总和。 要求把每行总和放入每行最大值的位置,如果有多个最大值,取下标值最小的那一个作为最大值。 最后将结果矩阵输出。输入描述:输入的第一行包括两个整数m和n(1<=m,n<=100),分别代表矩阵的行和列的维数。接下来的m行每行有n个数,代表矩阵的元素。输出描述:可能有多组测试数据...原创 2019-05-13 16:09:59 · 950 阅读 · 0 评论 -
P1091 合唱队形
题目描述NN位同学站成一排,音乐老师要请其中的(N-KN−K)位同学出列,使得剩下的KK位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K1,2,…,K,他们的身高分别为T_1,T_2,…,T_KT1,T2,…,TK, 则他们的身高满足T_1<...<T_i>T_{i+1}>…>T_K(1 \le i \le K)...原创 2019-05-22 17:14:19 · 181 阅读 · 0 评论 -
守形数
题目描述守形数是这样一种整数,它的平方的低位部分等于它本身。 比如25的平方是625,低位部分是25,因此25是一个守形数。 编一个程序,判断N是否为守形数。输入描述:输入包括1个整数N,2<=N<100。输出描述:可能有多组测试数据,对于每组数据,输出"Yes!”表示N是守形数。输出"No!”表示N不是守形数。示例1输入复制254...原创 2019-05-13 14:47:25 · 129 阅读 · 0 评论 -
成绩排序题目
题目描述有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息。输入描述:测试数据有多组,每组输入第一行有一个整数N(N<=1000),接下来的N行包括N个学生的数据。每个学生的数据包括姓名(长度不超过100的字符串)、年龄(整形数)、成绩(小于等于100的正数)。输出描述:...原创 2019-05-13 14:37:52 · 422 阅读 · 0 评论 -
遍历链表
题目描述建立一个升序链表并遍历输出。输入描述:输入的每个案例中第一行包括1个整数:n(1<=n<=1000),接下来的一行包括n个整数。输出描述:可能有多组测试数据,对于每组数据,将n个整数建立升序链表,之后遍历链表并输出。示例1输入复制43 5 7 9输出复制3 5 7 9使用堆排序排序后,构造链表,再遍历输出...原创 2019-05-13 14:36:49 · 597 阅读 · 0 评论 -
P1020 导弹拦截
题目描述某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是\le 50000≤50000的正整数),计算这套系统最多能拦截多少导弹...原创 2019-05-21 18:29:11 · 217 阅读 · 0 评论 -
c++初始化的一点知识笔记
在C语言中的全局变量和静态变量都是会自动初始化为0,堆和栈中的局部变量不会初始化而拥有不可预测的值。定义基本数据类型变量(单个值、数组)的同时可以指定初始值,如果未指定C++会去执行默认初始化(default-initialization)。 那么什么是”默认初始化”呢?栈中的变量(函数体中的自动变量)和堆中的变量(动态内存)会保有不确定的值; 全局变量和静态变量(包括局部静态变量...原创 2019-05-21 15:15:10 · 168 阅读 · 0 评论 -
kmp算法
匹配的过程是这样的已知空格与D不匹配时,前面六个字符"ABCDAB"是匹配的。查表可知,最后一个匹配字符B对应的"部分匹配值"为2,因此按照下面的公式算出向后移动的位数: 移动位数 = 已匹配的字符数 - 对应的部分匹配值因为 6 - 2 等于4,所以将搜索词向后移动4位。10.因为空格与C不匹配,搜索词还要继续往后移。这时,已匹配的字符数为2("AB"),...原创 2019-05-16 12:05:24 · 94 阅读 · 0 评论 -
P1616 疯狂的采药
题目背景此题为NOIP2005普及组第三题的疯狂版。此题为纪念LiYuxiang而生。题目描述LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同种类的草药,采每一种都需要一些时间,每一种也有它自身的价值。我会给你一...原创 2019-05-20 19:07:28 · 201 阅读 · 0 评论 -
P1049 装箱问题
题目描述有一个箱子容量为VV(正整数,0 \le V \le 200000≤V≤20000),同时有nn个物品(0<n \le 300<n≤30,每个物品有一个体积(正整数)。要求nn个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。输入输出格式输入格式:11个整数,表示箱子容量11个整数,表示有nn个物品接下来nn行,分别表示这nn个物品的各自体...原创 2019-05-20 18:38:00 · 154 阅读 · 0 评论 -
石子合并
题目描述在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.输入输出格式输入格式:数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.输出格式:输出共...原创 2019-05-28 15:20:16 · 359 阅读 · 0 评论 -
P1140 相似基因
题目背景大家都知道,基因可以看作一个碱基对序列。它包含了44种核苷酸,简记作A,C,G,TA,C,G,T。生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物。在一个人类基因工作组的任务中,生物学家研究的是:两个基因的相似程度。因为这个研究对疾病的治疗有着非同寻常的作用。题目描述两个基因的相似度的计算方法如下:对于两个已知基因,例如AGTGATGAGTGATG和GTT...原创 2019-05-28 16:41:52 · 212 阅读 · 0 评论 -
LeetCode -- reference binding to null pointer of type 'value_type'
产生原因:1.对于一些stl和一些数据结构掌握不准确。2.忽视判断条件。a.数组越界,在对vector初始化的时候没有初始化到合适大小,而在接下来的使用中使用了越界的下标。b.对于vector构建出来的二维数组没有进行空间的申请,比如有些返回类型为vector<vector<>>类型的函数,对于这个返回值vector表示的二维数组要先申请大小,否则使用下...原创 2019-09-01 20:39:30 · 396 阅读 · 0 评论 -
130. 被围绕的区域
给定一个二维的矩阵,包含'X'和'O'(字母 O)。找到所有被 'X' 围绕的区域,并将这些区域里所有的'O' 用 'X' 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的'O'都不会被填充为...原创 2019-09-01 20:19:38 · 191 阅读 · 0 评论 -
1116. 打印零与奇偶数
假设有这么一个类:class ZeroEvenOdd {public ZeroEvenOdd(int n) { ... } // 构造函数 public void zero(printNumber) { ... } // 仅打印出 0 public void even(printNumber) { ... } // 仅打印出 偶数 public void odd...原创 2019-08-27 23:37:32 · 264 阅读 · 0 评论 -
1115. 交替打印FooBar
我们提供一个类:class FooBar { public void foo() {for (int i = 0; i < n; i++) {print("foo"); } } public void bar() {for (int i = 0; i < n; i++) {print("bar");}...原创 2019-08-27 23:14:41 · 160 阅读 · 0 评论 -
1114. 按序打印
我们提供了一个类:public class Foo {public void one() { print("one"); }public void two() { print("two"); }public void three() { print("three"); }}三个不同的线程将会共用一个Foo实例。线程 A 将会调用 one() 方法线程 B 将会调...原创 2019-08-27 23:00:58 · 1476 阅读 · 0 评论 -
P1219 八皇后
题目描述检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列2 4 6 1 3 5来描述,第i个数字表示在第i行的相应位置有一个棋子,如下:行号 1 2 3 4 5 6列号 2 4 6 1 3 5这只是跳棋放置的一个解。请编一个程序找出所有跳棋放置的解。并把...原创 2019-08-06 23:40:53 · 177 阅读 · 0 评论 -
P1605 迷宫
题目背景给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。题目描述无输入格式第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标SX,SY,终点坐标FX,FY。接下来T行,每行为障碍点的坐标。...原创 2019-08-08 19:14:22 · 348 阅读 · 0 评论 -
P1101 单词方阵
题目描述给一n \times nn×n的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着88个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用*代替,以突出显示单词。例如:输入: 8 输出: qyizhong ...原创 2019-08-08 14:59:23 · 224 阅读 · 0 评论 -
P1019 单词接龙
题目描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如beastbeast和astonishastonish,如果接成一条龙则变为beastonishbeastonish,另外相邻的两部分不能存在包含关系,例如atat和ati...原创 2019-08-08 14:14:12 · 110 阅读 · 0 评论 -
P1017 进制转换
题目描述我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减11)为指数,以1010为底数的幂之和的形式。例如:123123可表示为1 \times 10^2+2\times 10^1+3\times 10^01×102+2×101+3×100这样的形式。与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的(值-1−1...原创 2019-07-22 17:35:21 · 329 阅读 · 0 评论 -
P1090 合并果子
题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1n−1次合并之后, 就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省...原创 2019-07-25 01:34:58 · 158 阅读 · 0 评论 -
P1282 多米诺骨牌
题目描述多米诺骨牌有上下2个方块组成,每个方块中有1~6个点。现有排成行的上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|。例如在图8-1中,S1=6+1+1+1=9,S2=1+5+3+2=11,|S1-S2|=2。每个多米诺骨牌可以旋转180°,使得上下两个方块互换位置。 编程用最少的旋转次数使多米诺骨牌上下2行点数之差达到最小。对于图中的例子,只要将...原创 2019-05-28 17:35:15 · 340 阅读 · 0 评论 -
P1048 采药
题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是...原创 2019-05-20 18:25:41 · 445 阅读 · 0 评论 -
P1064 金明的预算方案
题目描述金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件 附件电脑 打印机,扫描仪书柜 图书书桌 台灯,文具工...原创 2019-05-20 18:17:05 · 135 阅读 · 0 评论 -
P1002 过河卒
题目描述棋盘上AA点有一个过河卒,需要走到目标BB点。卒行走的规则:可以向下、或者向右。同时在棋盘上CC点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示,AA点(0, 0)(0,0)、BB点(n, m)(n,m)(nn,mm为不超过2020的整数),同样马的位置坐标是需要给出的。现在要求你计算出卒从AA点能够到达BB点的...原创 2019-05-15 10:27:03 · 181 阅读 · 0 评论 -
38. 除自身以外数组的乘积
给定长度为n的整数数组nums,其中n> 1,返回输出数组output,其中output[i]等于nums中除nums[i]之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]说明:请不要使用除法,且在O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的...原创 2019-04-17 23:31:10 · 102 阅读 · 0 评论 -
292. Nim游戏
你和你的朋友,两个人一起玩Nim游戏:桌子上有一堆石头,每次你们轮流拿掉1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false 解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛; 因为无论你拿走 1 块、2 块 还是 3...原创 2019-04-17 23:30:20 · 354 阅读 · 0 评论 -
89. 格雷编码
格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数n,打印其格雷编码序列。格雷编码序列必须以 0 开头。示例 1:输入:2输出:[0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的n,其格雷编码序列并不唯一。例如,[0,2,3,1]也是一个有效的格雷编码序列。00 ...原创 2019-04-17 23:28:36 · 109 阅读 · 0 评论 -
557. 反转字符串中的单词 III
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc"注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。class Solution {public: string...原创 2019-04-17 23:27:00 · 99 阅读 · 0 评论 -
148. 排序链表
在O(nlogn) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5归并排序/** * Definition for ...原创 2019-04-17 23:25:41 · 112 阅读 · 0 评论 -
C++中的NULL和nullptr的区别
如果使用 nullptr 初始化对象,就能避免 0 指针的二义性的问题。NULL在C语言中被定义为#define NULL ((void *)0)NULL在c++中被定义为#ifdef __cplusplus#define NULL 0#else#define NULL ((void *)0)#endif而void *任何类型的指针都可以直接赋值给它,无需进行...原创 2019-04-17 21:42:42 · 540 阅读 · 0 评论 -
c++多线程和并发编程学习
thread t(foo, i);void foo(int i){ ....}这样就产生了一个线程detach和joinC++有两种方式来等待线程结束detach在这里表示启动的线程自己在后台运行,当前的代码继续运行,不等待新的线程结束 join的方式实在线程运行完成后再继续往下运行,所以如果对之前的代码再做修改如下比如t.detach();t.j...原创 2019-04-03 15:29:25 · 543 阅读 · 0 评论 -
25. k个一组翻转链表
给出一个链表,每k个节点一组进行翻转,并返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么将最后剩余节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当k= 2 时,应当返回:2->1->4->3->5当k= 3 时,应当返回:3->2->...原创 2019-04-03 15:14:24 · 123 阅读 · 0 评论 -
30. 串联所有单词的子串
30. 串联所有单词的子串给定一个字符串s和一些长度相同的单词words。找出s中恰好可以由words中所有单词串联形成的子串的起始位置。注意子串要与words中的单词完全匹配,中间不能有其他字符,但不需要考虑words中单词串联的顺序。class Solution {public: vector<int> findSubstring...原创 2019-04-03 15:12:58 · 194 阅读 · 0 评论 -
c++无符号整数的一点笔记
1. 在c++中,如果赋值给无符号类型一个超过它表示范围的值(如负数),结果是初始值对无符号类型表示数值最大值取模后的余数。2. 在c++中,如果表达式中同时有无符号类型和有符号类型,会默认将有符号类型转换为无符号类型进行运算,运算结果也是无符号类型。b是一个vector比如当使用int i=a-b.size();如果a<b.size时候,i会变成一个非常大的数字...原创 2019-04-03 15:11:09 · 1452 阅读 · 0 评论