牛客练习
Reticent_Man
我本微末凡尘,可也心向天空。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2019北邮计算机机试
注意:所有代码均是根据题目描述进行了本地测试,没有在北邮oj上测试,不保证一定能AC。点击链接查看历年机试题目汇总。A二进制题目描述32位二进制数X,对其进行X+1,X+3 操作,并输出。注意不能忽略前导0输入第一行,一个整数T,代表测试数据组数。接着T行,输入32为二进制数输出对每组测试数据,输出两行,第一行为X+1,第二行为X+3.样例输入2000000...原创 2020-05-19 16:36:59 · 1133 阅读 · 0 评论 -
重建二叉树(根据先序和中序序列建立二叉树)
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解析先序遍历的首个元素即是根节点,利用该节点将中序遍历序列分为两部分,分别是左子树的中序遍历和右子树的中序遍历,对应的依次可以找到左子树的先序...原创 2020-01-19 21:48:16 · 492 阅读 · 0 评论 -
查找
题目描述读入一组字符串(待操作的),再读入一个int n记录记下来有几条命令。总共有2中命令:1、翻转 从下标为i的字符开始到i+len-1之间的字符串倒序;2、替换 命中如果第一位为1,用命令的第四位开始到最后的字符串替换原读入的字符串下标 i 到 i+len-1的字符串。每次执行一条命令后新的字符串代替旧的字符串(即下一条命令在作用在得到的新字符串上)。 命令格式...原创 2020-01-04 20:10:58 · 257 阅读 · 0 评论 -
用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解析栈是先进后出,队列是先进先出,所以先将数据存入第一个栈,在将栈一中的元素一次弹入进第二个栈,第二个栈出栈顺序就是原来的入栈顺序。需要注意当栈二不为空时,应该先将栈二中的元素放入栈一中。class Solution{public: void push(int node) {...原创 2018-08-08 21:25:17 · 204 阅读 · 0 评论 -
两个链表的第一个公共结点
题目描述输入两个链表,找出它们的第一个公共结点。解析方法一:先计算出两个链表的长度以及长度差,定义指针指向长链表的头结点,先走完长度差,然后让另一指针指向另一链表的头结点,两个链表同时指向下一结点,直到相等为止。(由于两链表从第一个公共结点开始后面的结点均相同,所以如果存在公共结点,那么两链表的尾结点一定相同)/*struct ListNode { int val; str...原创 2018-10-17 22:11:41 · 221 阅读 · 0 评论 -
不用加减乘除做加法
题目写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。解析位运算符的应用,以下是六种常见的位运算符: 运算符 含义 语法 应用 << 左移 ...原创 2018-10-09 21:05:34 · 788 阅读 · 0 评论 -
合并两个排序的链表
题目输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解析 递归 每次先返回当前最小的值,对于剩下的再进行递归调用。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }}...原创 2019-01-18 11:21:10 · 185 阅读 · 0 评论 -
汉得
今天汉得来我们学校招聘,刚好安排在了就业指导课上。这次招聘分为前端和后端,宣讲人发了笔试题,有选择和简答题,就最后一道是编程题,都很简单。题目如下:题目已知一个数列F(N)=F(N-1)+F(N-2)。其中第一项为1,以及第N项的值,求第二项是否为整数以及第二项的值。即输入N以及N的数值,输出第二项的值。样例输入10 89样例输出整数2分析题目非常直观,就是斐...原创 2019-03-18 23:05:08 · 1193 阅读 · 0 评论 -
从上往下打印二叉树
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。解析二叉树的层次遍历,广度优先搜索,用队列实现。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {...原创 2018-08-05 22:11:33 · 226 阅读 · 0 评论 -
栈的压入、弹出序列
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解析实际上就是一个模拟。先开一个vector数组,依次存入入栈数字,每次判断是...原创 2018-07-27 23:03:44 · 233 阅读 · 0 评论 -
和为S的连续正整数序列
题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数序...原创 2018-08-04 22:25:05 · 1287 阅读 · 0 评论 -
变态跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法思路:斐波那契的变式 假设f(n)是n个台阶跳的次数。f(1) = 1f(n-1) = f(0) + f(1) + f(2) + f(3) + ... + f(n-2)f(n) = f(0) + f(1) + f(2) + f(3) + ... + f(n-2) + f(n-1) =>...原创 2018-06-20 12:54:13 · 164 阅读 · 0 评论 -
二进制中1的个数
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。首先,如果一个整数不为0,那么这个整数至少有一位是1。如果把一个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。例如:二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变成了1,而前面的1保...原创 2018-07-16 16:14:56 · 226 阅读 · 0 评论 -
链表中倒数第k个结点
输入一个链表,输出该链表中倒数第k个结点。思路1:先计算出链表的长度,用长度再减去k,再遍历一次链表 到该位置,返回即可。class Solution {public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { int count=0; ListNode *tem...原创 2018-07-16 18:46:46 · 235 阅读 · 0 评论 -
从尾到头打印链表
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。class Solution{ public: vector<int> printListFromTailToHead(ListNode* head) { vector<int>a; ListNode *p; p=head; while(p!=NULL) { ...转载 2018-07-17 20:08:43 · 182 阅读 · 0 评论 -
数组中出现次数超过一半的数字
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。class Solution {public: int MoreThanHalfNum_Solution(vector<int> numbers) { i...原创 2018-07-17 21:41:25 · 183 阅读 · 0 评论 -
二叉树镜像
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5...原创 2018-07-25 22:24:41 · 223 阅读 · 0 评论 -
树的子结构
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解析:需要用两个函数判断,一个用来依次判断是否相等,中间有不相等的就返回0,另一个函数用来遍历树A。 注意巧妙地利用逻辑运算符可以简化代码。/*struct TreeNode { int val; struct TreeNode *left; struct ...原创 2018-07-25 23:02:34 · 467 阅读 · 0 评论 -
丑数
题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。class Solution {public: int GetUglyNumber_Solution(int index) { int count=1; int i=2;...原创 2018-07-28 23:17:50 · 598 阅读 · 0 评论 -
包含min函数的栈
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。思路定义两个栈,一个存放原始数据,另一个作对比,只存放递减的数字(其他的不入栈)。例如:栈1存入6 2 5 3 1,栈2只存入6 2 1,那么栈2的栈顶元素就是最小值。class Solution {public: stack<int> stack1...原创 2018-07-26 22:40:57 · 190 阅读 · 0 评论 -
矩形覆盖
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?#include <iostream>using namespace std;int rectCover(int number) { if(number==1) return 1; else if(number==2) retur...原创 2018-06-20 12:54:18 · 189 阅读 · 0 评论
分享