![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
刷题
philosophia_OsO
这个作者很懒,什么都没留下…
展开
-
2020-09-08小米笔试
#include <iostream>#include<queue>#include<vector>#include<string>#include<algorithm>using namespace std;bool back_track(vector<vector<char>>& data, string& line,int cnt,int i,int j){ if (data[i]原创 2020-09-08 19:40:35 · 184 阅读 · 0 评论 -
2020-09-03百度笔试题
输入:13 633 66 993 6 9 30 60 90输出:5 6 -1输入:13 666 33 993 6 9 30 60 90输出:6 5 -1输入:13 666 33 9990 6 9 30 60 3输出:1 5 -1#include <iostream>#include<string>#include<vector>#include<algorithm>using namespace s原创 2020-09-03 21:14:22 · 222 阅读 · 0 评论 -
2020-08-20商汤科技笔试A卷
文章目录1、查找“Good”字符串2、最长上升子序列,leetcode原题3、求删除区间的最小个数,可以使得删除后剩下的区间彼此不重叠1、查找“Good”字符串【题目描述】给定一个字符串,在字符串中查找"Good",字符顺序不可变,每个字符只能用一次。输入:GoooooooodGGGddd输出:1输入:Goo23good Gooddd 输出:2输入:ggoodood 输出:0输入:123 GoodoodGGoooddjfhjdGGooo3dkdggggGoood0123\n 输原创 2020-08-21 00:50:32 · 310 阅读 · 0 评论 -
2020-08-20网易互娱一面
【1】a,b两数组均升序排列。将b数组所有成员融合到a数组里面。(a数组足够大)维持两个指针,从后往前比较。【2】最小生成树【3】判断栈的输出顺序。【其他】线程进程、TCP/UDP、Linux命令...原创 2020-08-20 15:50:10 · 181 阅读 · 0 评论 -
2020-08-16大疆嵌入式笔试编程题:求两个不重叠连续子串的最大和
【描述】从输入数组中找出两个连续子串,并且使这 两个连续字串和 之间的和最大。输入:1,-1,2,2,3,-3,4,-4,5,-5输出:13即 {2,2,3,-3,4} 和 {5} 的和(8+5=13)【code】参考:面试题42:连续子数组的最大和#include<iostream>#include<vector>#include<string>using namespace std;int findGreatSumOfSubarray(vect原创 2020-08-16 21:43:09 · 356 阅读 · 0 评论 -
联发科2021笔试题:字符串中找到 出现次数 最多的单个字符
【I/O描述】输入:"aaaaabbbbbBBBBBAAAAA"输出:A,5输入:"1112223334445555566666666"输出:0,0输入:"aaaaaaaaaaaaaabbbbbBBBBBAAAAA"输出:a,14输入:""输出:0,0【Code】#include<iostream>#include<map>//#include<algorithm>#include<string>using namesp原创 2020-08-06 09:28:57 · 240 阅读 · 0 评论 -
面试题:两个链表结构的数据相加,保存到新链表。
//使用STL#include<iostream>//#include<vector>#include<stack>#include<algorithm>//#include<stack>#include<queue>#include<set>#include<list>using namespace std;list<int> sumTwoList(list<int&g原创 2020-07-31 17:02:36 · 133 阅读 · 0 评论 -
面试题44:数字序列中某一位的数字
【题目】数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数求任意位对应的数字。【code】#include<iostream>//#include<vector>#include<stack>#include<algorithm>//#include<stack>#include<queue>#inc原创 2020-07-31 10:48:17 · 91 阅读 · 0 评论 -
面试题43:从1到n整数中1出现的次数
【题目】输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如 输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。【code】#include<iostream>//#include<vector>#include<stack>#include<algorithm>//#include<stack>#include<queue>#include<set>原创 2020-07-31 09:44:10 · 90 阅读 · 0 评论 -
面试题:数组中找出两个单数
【题目】一个数组中除了两个数是单个的,其他的数都有两个,请找出这两个单个的数【code】#include<iostream>//#include<vector>#include<stack>#include<algorithm>//#include<stack>#include<queue>#include<set>using namespace std;void findTwoNum(vector&原创 2020-07-30 22:51:27 · 212 阅读 · 0 评论 -
面试题42:连续子数组的最大和
【题目】输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。【code】解法一:暴力法#include<iostream>//#include<vector>#include<stack>#include<algorithm>//#include<stack>#include<queue>#include<set>usi原创 2020-07-30 14:19:01 · 155 阅读 · 0 评论 -
面试题41:数据流中的中位数
【 题目】如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值, 那么中位数就是所有数值排序之后中间两个数的平均值。【I/O】 numbers.Insert(5); Test("Test2", numbers, 5); numbers.Insert(2); Test("Test3", numbers, 3.5); numbers.Insert(3); Test("Test4",原创 2020-07-29 21:42:58 · 89 阅读 · 0 评论 -
面试题40:最小的k个数
【题目】输入n个整数,找出其中最小的k个数。例如输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。【code】方法一:时间复杂度为O(n)的算法,只有当我们可以修改输入的数组时可用#include<iostream>//#include<vector>#include<stack>#include<algorithm>//#include<stack>#include<queue>us原创 2020-07-29 15:40:13 · 113 阅读 · 0 评论 -
面试题39:数组中出现次数超过一半的数字
【题目】数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1, 2, 3, 2, 2, 2, 5, 4, 2}。由于数字2在数组中 出现了5次,超过数组长度的一半,因此输出2。【I/O】// 存在出现次数超过数组长度一半的数字void Test1(){ int numbers[] = {1, 2, 3, 2, 2, 2, 5, 4, 2}; Test("Test1", numbers, sizeof(numbers) / sizeof(int原创 2020-07-29 12:53:19 · 94 阅读 · 0 评论 -
面试题38:字符串的排列
【题目】输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc, 则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。【代码】#include<iostream>//#include<vector>#include<stack>#include<algorithm>//#include<stack>#include<queue>using namespace原创 2020-07-28 20:32:07 · 132 阅读 · 0 评论 -
面试题37:序列化二叉树
【题目】请实现两个函数,分别用来序列化和反序列化二叉树。【代码】#include<iostream>//#include<vector>#include<stack>#include<algorithm>//#include<stack>#include<queue>using namespace std;struct BinaryTreeNode{ int value; BinaryTreeNode* le原创 2020-07-28 09:57:28 · 94 阅读 · 0 评论 -
面试题36:二叉搜索树与双向链表
【 题目】输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。【代码】#include<iostream>//#include<vector>#include<stack>#include<algorithm>//#include<stack>#include<queue>using namespace std;struct BinaryTreeNode原创 2020-07-28 09:08:13 · 65 阅读 · 0 评论 -
面试题35:复杂链表的复制
【题目】请实现函数ComplexListNode* Clone(ComplexListNode* pHead),复 制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling 指向链表中的任意结点或者nullptr。#include<iostream>//#include<vector>#include<stack>#include<algorithm>//#include<stack&g原创 2020-07-27 17:38:11 · 77 阅读 · 0 评论 -
面试题34:二叉树中和为某一值的路径
【题目】输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。【代码】#include<iostream>//#include<vector>#include<stack>#include<algorithm>//#include<stack>#include<queue>using namespace std;struct BinaryT原创 2020-07-27 16:13:42 · 65 阅读 · 0 评论 -
面试题33:二叉搜索树的后序遍历序列
【题目】输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。【代码】#include<iostream>//#include<vector>#include<stack>#include<algorithm>//#include<stack>#include<queue>using namespace std;struct原创 2020-07-27 15:23:45 · 67 阅读 · 0 评论 -
面试题32:从上往下打印二叉树
面试题32(一):不分行// 题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。【代码】#include<iostream>//#include<vector>#include<stack>#include<algorithm>//#include<stack>#include<queue>using namespace std;struct BinaryTreeNode{ int va原创 2020-07-27 14:41:59 · 78 阅读 · 0 评论 -
面试题31:栈的压入、弹出序列
【题目】输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是 否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列4、5、3、2、1是该压栈序列对应的一个弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹出序列。【输入输出描述】void Test1(){ const int nLength = 5; int push[nLength] = {1, 2, 3, 4, 5}; int pop[nLength] = {4原创 2020-07-27 11:22:34 · 144 阅读 · 0 评论 -
面试题30:包含min函数的栈
【 题目:】定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min 函数。在该栈中,调用min、push及pop的时间复杂度都是O(1)。【code】#include<iostream>//#include<vector>#include<stack>#include<algorithm>//#include<stack>using namespace std;class MinStack{public: Mi原创 2020-07-27 09:56:25 · 68 阅读 · 0 评论 -
面试题29:顺时针打印矩阵
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。【Code】#include<iostream>//#include<vector>#include<string>#include<algorithm>//#include<stack>using namespace std;void PrintMatrixInCircle(int** num, int cols, int rows,int start){原创 2020-07-27 08:30:27 · 94 阅读 · 0 评论 -
面试题28:对称的二叉树
题目:请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。【代码】#include<iostream>//#include<vector>#include<string>#include<algorithm>//#include<stack>using namespace std;struct BinaryTreeNode{ double value; BinaryTreeNode*原创 2020-07-24 18:31:23 · 76 阅读 · 0 评论 -
面试题27:二叉树的镜像
题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。【代码】#include<iostream>//#include<vector>#include<string>#include<algorithm>//#include<stack>using namespace std;struct BinaryTreeNode{ double value; BinaryTreeNode* left; BinaryTreeNod原创 2020-07-24 18:01:12 · 66 阅读 · 0 评论 -
面试题26:树的子结构
题目:输入两棵二叉树A和B,判断B是不是A的子结构。【代码】#include<iostream>//#include<vector>#include<string>#include<algorithm>//#include<stack>using namespace std;struct BinaryTreeNode{ double value; BinaryTreeNode* left; BinaryTreeNode*原创 2020-07-24 17:43:21 · 94 阅读 · 0 评论 -
面试题25:合并两个排序的链表
【题目】输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。例如输入图3.11中的链表1和链表2,则合并之后的升序链表如链表3所示。【代码】#include<iostream>//#include<vector>#include<string>#include<algorithm>//#include<stack>using namespace std;struct ListNode{ int va原创 2020-07-24 17:03:20 · 83 阅读 · 0 评论 -
面试题24:反转链表
【题目:】定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点【code】#include<iostream>//#include<vector>#include<string>#include<algorithm>//#include<stack>using namespace std;struct ListNode{ int value; ListNode* next;};ListNode* Re原创 2020-07-24 16:41:09 · 72 阅读 · 0 评论 -
面试题23:链表中环的入口结点
【题目:】一个链表中包含环,如何找出环的入口结点?例如,在图3.8的链表中, 环的入口结点是结点3。【代码】原创 2020-07-24 16:17:26 · 69 阅读 · 0 评论 -
面试题22:链表中倒数第k个结点
【题目:】输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个结点是值为4的结点。【I/O】【代码】#include<iostream>//#include<vector>#include<string>#include<algorithm>//#include<stack>原创 2020-07-23 17:59:56 · 89 阅读 · 0 评论 -
面试题21:调整数组顺序使奇数位于偶数前面
【 题目:】输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。【I/O描述】void Test1(){ int numbers[] = {1, 2, 3, 4, 5, 6, 7}; Test("Test1", numbers, sizeof(numbers)/sizeof(int));}void Test2(){ int numbers[] = {2, 4, 6, 1, 3, 5, 7}; Te原创 2020-07-23 17:35:43 · 72 阅读 · 0 评论 -
面试题20:表示数值的字符串
【 题目:】请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串“+100”、“5e2”、“-123”、“3.1416”及“-1E-16”都表示数值,但“12e”、 “1a3.14”、“1.2.3”、“±5”及“12e+5.4”都不是【I/O描述】 Test("Test1", "100", true); Test("Test2", "123.45e+6", true); Test("Test3", "+500", true); Test("Test4", "原创 2020-07-23 16:36:06 · 62 阅读 · 0 评论 -
面试题19:正则表达式匹配
【 题目】请实现一个函数用来匹配包含’.‘和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但与"aa.a"及"ab*a"均不匹配。【输入输出】 Test("Test01", "", "", true); Test("Test02", "", ".*", true); Test("Test03", "", ".", fa原创 2020-07-23 15:19:20 · 69 阅读 · 0 评论 -
面试题18:删除链表结点
面试题18(一):在O(1)时间删除链表结点【题目:】给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该 结点。【输入输出描述】【参考代码】void DeleteNode(ListNode** pListHead, ListNode* pToBeDeleted){ if(!pListHead || !pToBeDeleted) return; // 要删除的结点不是尾结点 if(pToBeDeleted->m_pNext != n原创 2020-07-22 16:52:16 · 84 阅读 · 0 评论 -
面试题17:打印1到最大的n位数
【题目:】输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。【输入输出描述】 Test(1); Test(2); Test(3); Test(0); Test(-1);【参考代码】#include<iostream>#include<vector>#include<string>#include<sstream>//#include<set>原创 2020-07-21 10:58:16 · 72 阅读 · 0 评论 -
面试题16:数值的整数次方
【题目:】实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。【输入输出描述】 // 底数、指数都为正数 Test("Test1", 2, 3, 8, false); // 底数为负数、指数为正数 Test("Test2", -2, 3, -8, false); // 指数为负数 Test("Test3", 2, -3, 0.125, false);原创 2020-07-20 11:51:27 · 69 阅读 · 0 评论 -
面试题15 二进制中1的个数
【 题目:】请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。【输入输出描述】// 输入0,期待的输出是0 Test(0, 0); // 输入1,期待的输出是1 Test(1, 1); // 输入10,期待的输出是2 Test(10, 2); // 输入0x7FFFFFFF,期待的输出是31 Test(0x7FFFFFFF, 31); // 输入原创 2020-07-20 09:33:20 · 66 阅读 · 0 评论 -
面试题13:机器人的运动范围
【题目描述】题目:地上有一个m行n列的方格。一个机器人从坐标(0, 0)的格子开始移动,它每一次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35, 37),因为3+5+3+7=18。但它不能进入方格(35, 38),因为3+5+3+8=19。请问该机器人能够到达多少个格子?【输入输出描述】int threshold, int rows, int cols, int expected// 方格多行多列 5, 10, 10原创 2020-07-19 11:27:34 · 83 阅读 · 0 评论 -
21届字节跳动校招提前批2020.07.18晚,笔试记录
1、山形数组去重,并排序要求时间复杂度O(N),空间复杂度O(1);【输入输出描述】//输入1,2,2,5,10,9,8,2,1,1//输出1,2,5,8,9,10【参考答案】#include<iostream>#include<string>#include<vector>using namespace std;void test(vector<int>& v){ for (auto a : v) { cou原创 2020-07-19 10:46:48 · 221 阅读 · 0 评论