
C++
C++
aJupyter
自然语言处理方向在读硕士生,优快云人工智能领域优质创作者,语雀知识库构建者,欢迎大家交流~
https://github.com/aJupyter
展开
-
51. 数字排列
输入一组数字(可能包含重复数字),输出其所有的排列方式。数据范围输入数组长度 [0,6]。样例输入:[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]STL nb原创 2022-12-07 18:57:55 · 113 阅读 · 0 评论 -
20. 用两个栈实现队列
请用栈实现一个队列,支持如下四种操作:push(x) – 将元素x插到队尾;pop() – 将队首的元素弹出,并返回该元素;peek() – 返回队首元素;empty() – 返回队列是否为空;注意:你只能使用栈的标准操作:push to top,peek/pop from top, size 和 is empty;如果你选择的编程语言没有栈的标准库,你可以使用list或者deque等模拟栈的操作;输入数据保证合法,例如,在队列为空时,不会进行pop或者peek等操作;数据范围每组数据操作命原创 2022-12-07 18:41:15 · 379 阅读 · 0 评论 -
862. 三元组排序
给定 N 个三元组 (x,y,z),其中 x 是整数,y 是浮点数,z 是字符串。请你按照 x 从小到大的顺序将这些三元组打印出来。数据保证不同三元组的 x 值互不相同。输入格式第一行包含整数 N。接下来 N 行,每行包含一个整数 x,一个浮点数 y,一个字符串 z,表示一个三元组,三者之间用空格隔开。输出格式共 N 行,按照 x 从小到大的顺序,每行输出一个三元组。注意,所有输入和输出的浮点数 y 均保留两位小数。数据范围1≤N≤10000,1≤x,y≤105,字符串总长度不超过 105。输入样原创 2022-12-07 18:23:13 · 151 阅读 · 0 评论 -
26. 二进制中1的个数
解释:-2在计算机里会被表示成11111111111111111111111111111110,输入一个 32 位整数,输出该数二进制表示中 1 的个数。解释:9的二进制表示是1001,一共有2个1。负数在计算机中用其绝对值的补码来表示。−100≤ 输入整数 ≤100。原创 2022-11-29 20:38:43 · 107 阅读 · 0 评论 -
75. 和为S的两个数字
输入一个数组和一个数字 s,在数组中查找两个数,使得它们的和正好是 s。你可以认为每组输入中都至少含有一组满足条件的输出。如果有多对数字的和等于 s,输出任意一对即可。输入:[1,2,3,4] , sum=7。数组长度 [1,1002]。原创 2022-11-29 20:28:47 · 101 阅读 · 0 评论 -
53. 最小的k个数
输入:[1,2,3,4,5,6,7,8] , k=4。输入 n 个整数,找出其中最小的 k 个数。输出数组内元素请按从小到大顺序排序;输出:[1,2,3,4]原创 2022-11-29 20:12:58 · 97 阅读 · 0 评论 -
17. 从尾到头打印链表
输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。0≤ 链表长度 ≤1000。输入:[2, 3, 5]返回:[5, 3, 2]返回的结果用数组存储。原创 2022-11-29 19:35:37 · 181 阅读 · 0 评论 -
32. 调整数组顺序使奇数位于偶数前面
使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分。输入一个整数数组,实现一个函数来调整该数组中数字的顺序。输出: [1,3,5,2,4]输入:[1,2,3,4,5]数组长度 [0,100]。原创 2022-11-29 19:29:39 · 79 阅读 · 0 评论 -
68. 0到n-1中缺失的数字
一个长度为 n−1 的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围 0 到 n−1 之内。在范围 0 到 n−1 的 n 个数字中有且只有一个数字不在该数组中,请找出这个数字。输入:[0,1,2,4]原创 2022-11-27 22:24:16 · 108 阅读 · 2 评论 -
67. 数字在排序数组中出现的次数
例如输入排序数组 [1,2,3,3,3,3,4,5] 和数字 3,由于 3 在这个数组中出现了 4 次,因此输出 4。输入:[1, 2, 3, 3, 3, 3, 4, 5] , 3。统计一个数字在排序数组中出现的次数。数组长度 [0,1000]。原创 2022-11-27 22:15:31 · 137 阅读 · 0 评论 -
774. 最长单词
一个以 . 结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式,求句子中的最长单词。输入一行字符串,表示这个简单英文句子,长度不超过 500。该句子中最长的单词。如果多于一个,则输出第一个。原创 2022-11-27 17:25:20 · 265 阅读 · 1 评论 -
29. 删除链表中重复的节点
在一个排序的链表中,存在重复的节点,请删除该链表中重复的节点,重复的节点不保留。链表中节点 val 值取值范围 [0,100]。输入:1->2->3->3->4->4->5。输入:1->1->1->2->3。链表长度 [0,100]。输出:1->2->5。原创 2022-11-22 17:44:01 · 135 阅读 · 0 评论 -
66. 两个链表的第一个公共结点
保证两个链表不完全相同,即两链表的头结点不相同。输入两个链表,找出它们的第一个公共结点。当不存在公共节点时,返回空节点。链表长度 [1,2000]。双指针,依次遍历不同的链表。输出第一个公共节点c1。原创 2022-11-22 11:28:23 · 138 阅读 · 0 评论 -
35. 反转链表
定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。输入:1->2->3->4->5->NULL。输出:5->4->3->2->1->NULL。请同时实现迭代版本和递归版本。链表长度 [0,30]。原创 2022-11-21 23:55:16 · 80 阅读 · 0 评论 -
87. 把字符串转换成整数
如果整数大于 INT_MAX(231−1),请返回 INT_MAX;如果整数小于INT_MIN(−231) ,请返回 INT_MIN;忽略所有行首空格,找到第一个非空格字符,可以是 ‘+/−’ 表示是正数或者负数,紧随其后找到最长的一串连续数字,将其解析成一个整数;请你写一个函数 StrToInt,实现把字符串转换成整数这个功能。当然,不能使用 atoi 或者其他类似的库函数。整数后可能有任意非数字字符,请将其忽略;如果整数长度为 0,则返回 0;输入字符串长度 [0,20]。原创 2022-11-21 23:29:48 · 269 阅读 · 0 评论 -
78. 左旋转字符串
比如输入字符串"abcdefg"和数字 2,该函数将返回左旋转 2 位得到的结果"cdefgab"。字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。// [0, n) 左闭右开。请定义一个函数实现字符串左旋转操作的功能。数据保证 n 小于等于输入字符串的长度。输入:“abcdefg” , n=2。输入字符串长度 [0,1000]。输出:“cdefgab”原创 2022-11-16 20:03:35 · 88 阅读 · 2 评论 -
36. 合并两个排序的链表
输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。输入:1->3->5 , 2->4->5。输出:1->2->3->4->5->5。链表长度 [0,500]。原创 2022-11-16 19:33:37 · 122 阅读 · 0 评论 -
28. 在O(1)时间删除链表结点
给定单向链表的一个节点指针,定义一个函数在O(1)时间删除该结点。删掉节点:第2个节点即6(头节点为第0个节点)假设链表一定存在,并且该节点一定不是尾节点。输入:链表 1->4->6->8。输出:新链表 1->4->8。链表长度 [1,500]。原创 2022-11-11 23:41:42 · 134 阅读 · 0 评论 -
84. 求1+2+…+n
n,要求不能使用乘除法、for、while、if、else、switch、case 等关键字及条件判断语句 (A?原创 2022-11-11 23:33:49 · 185 阅读 · 0 评论 -
16. 替换空格
请实现一个函数,把字符串中的每个空格替换成"%20"。输出:“We%20are%20happy.”生成一个新的,而不是在原来的基础上进行替换。注意输出字符串的长度可能大于 1000。0≤ 输入字符串的长度 ≤1000。输入:“We are happy.”原创 2022-11-11 16:31:14 · 256 阅读 · 0 评论 -
AcWing 21. 斐波那契数列
输入一个整数 n ,求斐波那契数列的第 n 项。假定从 0 开始,第 0 项为 0。原创 2022-11-11 16:24:57 · 96 阅读 · 0 评论 -
822. 走方格
给定一个 n×m 的方格阵,沿着方格的边线走,从左上角 (0,0) 开始,每次只能往右或者往下走一个单位距离,问走到右下角 (n,m) 一共有多少种不同的走法。共一行,包含一个整数,表示走法数量。共一行,包含两个整数 n 和 m。原创 2022-11-08 21:06:40 · 129 阅读 · 0 评论 -
817. 数组去重
共一行,包含一个整数表示数组中不同数的个数。第二行包含 n 个整数,表示数组 a。第一行包含一个整数 n。原创 2022-11-07 11:48:12 · 116 阅读 · 0 评论 -
816. 数组翻转
给定一个长度为 n 的数组 a 和一个整数 size,请你编写一个函数,void reverse(int a[], int size),实现将数组 a 中的前 size 个数翻转。共一行,包含 n 个整数,表示翻转后的数组 a。第一行包含两个整数 n 和 size。第二行包含 n 个整数,表示数组 a。输出翻转后的数组 a。原创 2022-11-07 11:38:13 · 387 阅读 · 0 评论 -
815. 打印字符串
给定一个字符串,请你编写一个函数,void print(char str[]),将这个字符串打印出来。共一行,表示打印出的字符串。共一行,包含一个字符串。1≤字符串长度≤100。原创 2022-11-07 11:25:27 · 436 阅读 · 0 评论 -
814. 复制数组
给定两个数组 a 和 b 以及一个整数 size,请你编写一个函数,void copy(int a[], int b[], int size),将 a 数组中的前 size 个数字,复制到 b 数组中。第一行包含整数 n,m,size,分别表示 a 数组的长度,b 数组的长度以及整数 size。数组作为形参的时候,函数内部对数组的修改会作用到原数组。共一行,包含 m 个整数,表示复制完成后的数组 b。第二行包含 n 个整数,表示数组 a。第三行包含 m 个整数,表示数组 b。复制完成后,输出 b 数组。原创 2022-11-07 11:16:07 · 266 阅读 · 0 评论 -
809. 最小公倍数
输入两个整数 a 和 b,请你编写一个函数,int lcm(int a, int b),计算并输出 a 和 b 的最小公倍数。共一行,包含一个整数,表示 a 和 b 的最小公倍数。共一行,包含两个整数 a 和 b。原创 2022-11-07 11:07:37 · 125 阅读 · 0 评论 -
807. 区间求和
输入两个整数 l 和 r,请你编写一个函数,int sum(int l, int r),计算并输出区间 [l,r] 内所有整数的和。共一行,包含一个整数,表示所求的和。共一行,包含两个整数 l 和 r。原创 2022-11-07 11:04:23 · 103 阅读 · 0 评论 -
806. 两个数的和
输入两个浮点数 x 和 y,请你编写一个函数,double add(double x, double y),计算并输出 x 与 y 的和。共一行,包含一个浮点数,表示两个数的和,结果保留 2 位小数。共一行,包含两个浮点数 x 和 y。原创 2022-11-07 11:00:14 · 100 阅读 · 0 评论 -
810. 绝对值
输入一个整数 x,请你编写一个函数,int abs(int x),输出 x 的绝对值。共一行,包含 x 的绝对值。共一行,包含一个整数 x。原创 2022-11-07 10:37:00 · 190 阅读 · 0 评论 -
820. 递归求斐波那契数列
斐波那契数列:1,1,2,3,5…,这个数列从第 3 项开始,每一项都等于前两项之和。请使用递归的方式求斐波那契数列的第 n 项,下标从1开始。共一行,包含一个整数,表示斐波那契数列的第 n 项。共一行,包含整数 n。原创 2022-11-07 09:37:07 · 66 阅读 · 0 评论 -
819. 递归求阶乘
共一行,包含一个整数,表示 n 的阶乘的值。请使用递归的方式求 n 的阶乘。共一行,包含一个整数 n。原创 2022-11-07 09:26:49 · 108 阅读 · 0 评论 -
813. 打印矩阵
给定一个 row×col 的二维数组 a,请你编写一个函数,void print2D(int a[][N], int row, int col),打印数组构成的 row 行,col 列的矩阵。接下来 row 行,每行包含 col 个整数,表示完整二维数组 a。共 row 行,每行 col 个整数,表示打印出的矩阵。注意,每打印完一整行需要输出一个回车。第一行包含两个整数 row,col。注意二维矩阵参数形式。原创 2022-11-06 18:15:42 · 170 阅读 · 0 评论 -
812. 打印数字
输入一个长度为 n 的数组 a 和一个整数 size,请你编写一个函数, void print(int a[], int size), 打印数组 a 中的前 size 个数。共一行,包含 size 个整数,表示数组的前 size 个数。第二行包含 n 个整数 a[i],表示整个数组。第一行包含两个整数 n 和 size。原创 2022-11-06 17:16:34 · 87 阅读 · 0 评论 -
811. 交换数值
输入两个整数 x 和 y,请你编写一个函数, 交换两个整数的数值并输出交换后的 x 和 y。Java中的格式为:void swap(int[] a),交换a[0]和a[1]。C++中的格式为:void swap(int &x, int &y)。共一行,包含两个整数 x 和 y。共一行,包含交换后的 x 和 y。原创 2022-11-06 17:10:25 · 229 阅读 · 0 评论 -
808. 最大公约数
输入两个整数 a 和 b,请你编写一个函数,int gcd(int a, int b), 计算并输出 a 和 b 的最大公约数。共一行,包含一个整数,表示 a 和 b 的最大公约数。共一行,包含两个整数 a 和 b。原创 2022-11-06 17:04:45 · 94 阅读 · 0 评论 -
805. x和y的最大值
输入两个整数 x 和 y,请你编写一个函数,int max(int x, int y),计算并输出 x 和 y 的最大值。共一行,包含一个整数,表示两个数中较大的那个数。共一行,包含两个整数 x 和 y。原创 2022-11-06 16:57:59 · 118 阅读 · 0 评论 -
804. n的阶乘
输入一个整数 n,请你编写一个函数,int fact(int n),计算并输出 n 的阶乘。共一行,包含一个整数表示 n 的阶乘的值。共一行,包含一个整数 n。原创 2022-11-06 16:53:36 · 99 阅读 · 0 评论 -
779. 最长公共字符串后缀
N 为 0 时表示输入结束,否则后面会继续有 N 行输入,每行是一个字符串(字符串内不含空白符)。共一行,为 N 个字符串的最长公共后缀(可能为空)。给出若干个字符串,输出这些字符串的最长公共后缀。每组输入的第一行是一个整数 N。每个字符串的长度不超过 200。原创 2022-11-03 23:47:16 · 379 阅读 · 0 评论 -
778. 字符串最大跨距
例如,S= abcd123ab888efghij45ef67kl, S1= ab, S2= ef,其中,S1 在 S 中出现了 2 次,S2 也在 S 中出现了 2 次,最大跨距为:18。现在,我们想要检测 S1 和 S2 是否同时在 S 中出现,且 S1 位于 S2 的左边,并在 S 中互不交叉(即,S1 的右边界点在 S2 的左边界点的左侧)。有三个字符串 S,S1,S2,其中,S 长度不超过 300,S1 和 S2 的长度不超过 10。如果没有满足条件的 S1,S2 存在,则输出 −1。原创 2022-10-31 23:51:14 · 130 阅读 · 0 评论