笔试
公众号“CodeLab”的【笔试】分享
puthon
公众号:CodeLab | 编程干货分享,互联网资讯速达
展开
-
【剑指offer】25-复杂链表的复制
1-Description输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)struct RandomListNode { int label; struct RandomListNode *next, *rando...原创 2019-10-24 19:18:57 · 178 阅读 · 0 评论 -
【剑指offer】24-二叉树中和为某一值的路径
1- Description输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; Tree...原创 2019-10-16 09:55:15 · 117 阅读 · 0 评论 -
【剑指offer】23-二叉搜索树的后续遍历
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1- Description输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。2-Solution我们先来了解一下什么是二叉搜索树:二叉查找树(BinarySearchTree),...原创 2019-10-16 09:33:13 · 114 阅读 · 0 评论 -
【剑指offer】11-二进制中1的个数
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示2-Solution1-右移整数注意这里强调了负数的存在,如果我们单纯的将整数n逐位进行右移将进入死循环,例如将负数0x80000000右移1位的时候,并不是简单地把最高位1移到...原创 2019-05-06 12:13:37 · 177 阅读 · 0 评论 -
【剑指offer】10-矩形覆盖
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description我们可以用2×1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2×1的小矩形无重叠地覆盖一个2×n的大矩形,总共有多少种方法?2-Solution1-问题分析这仍旧是一个斐波那契数列的问题,下面具体分析:假设第一次我们用2×1的小矩形...原创 2019-05-06 12:09:12 · 132 阅读 · 0 评论 -
【剑指offer】14-链表中倒数第k个结点
1-Description输入一个链表,输出该链表中倒数第k个结点链表定义如下:struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};```2-Solution第一种方法很容易想到,...原创 2019-05-08 10:46:38 · 166 阅读 · 0 评论 -
【剑指offer】9-变态跳台阶
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。2-Solution1-问题分析由【跳台阶】这一问题的分析,对于n级台阶我们可以很快得到下面的结论:第1次如果跳1级,则剩下...原创 2019-04-29 15:41:58 · 158 阅读 · 0 评论 -
【剑指offer】4-重建二叉树
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。二叉树结点定...原创 2019-04-19 21:09:47 · 138 阅读 · 0 评论 -
【剑指offer】8-跳台阶
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。2-Solution1-问题分析如果只有1级台阶,显然只有与一种跳法;如果有2级台阶,则有两种跳法:一种是分2次跳,每次...原创 2019-04-28 21:18:03 · 251 阅读 · 0 评论 -
【剑指offer】7-斐波那契数列
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=392-Solution1-问题分析我们知道Fibonacci数列的定义可以用如下的公式表示:Fib(n)={0,n&nbs...原创 2019-04-27 16:49:18 · 316 阅读 · 0 评论 -
【剑指offer】12-数值的整数次方
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方2-Solution这里注意的是需要考虑指数小于0以及底数为0的情况,所以在写代码的时候要尽量保证代码的全面性,下面是解决代码cla...原创 2019-05-06 12:16:04 · 175 阅读 · 0 评论 -
【剑指offer】15-反转链表+图解
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description输入一个链表,反转链表后,输出新链表的表头,下面是链表的定义:struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL...原创 2019-05-09 21:46:25 · 277 阅读 · 0 评论 -
【剑指offer】13-调整数组顺序使奇数位于偶数前面
1-Description输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变2-Solution首先可以考虑新开辟一个数组,并进行两次遍历原数组,这样可以方便的把奇数排在前面,偶数排在后面,具体代码如下:class Solution {public: void ...原创 2019-05-07 23:57:50 · 202 阅读 · 0 评论 -
【剑指offer】16-合并两个排序的链表
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则,下面是链表的定义:struct ListNode { int val; struct ListNode *next; ListNode(int x)...原创 2019-05-10 22:57:03 · 131 阅读 · 0 评论 -
【剑指offer】17-树的子结构
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构),二叉树结点定义如下://Definition for binary tree struct TreeNode { int val; ...原创 2019-05-11 23:28:10 · 174 阅读 · 1 评论 -
【剑指offer】18-二叉树的镜像
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description操作给定的二叉树,将其变换为源二叉树的镜像二叉树结点定义如下://Definition for binary tree struct TreeNode { int val; TreeNode *left; Tre...原创 2019-05-12 20:11:53 · 224 阅读 · 0 评论 -
【剑指offer】19-顺时针打印矩阵
1-Description输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,[12345678910111213141516] \left[ \begin{matrix} 1 & 2 & 3 & 4 \\ 5 & 6 & 7 &8 \\ 9 & 1...原创 2019-05-13 11:15:53 · 182 阅读 · 0 评论 -
【剑指offer】20- 包含min函数的栈
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1- Description定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。2-Solution注意这里强调了得到最小元素要求时间复杂度是O(1),所以可以考虑将最小的元素存储起来备用,这里采取的方式是创建一个辅助...原创 2019-05-29 19:31:41 · 141 阅读 · 0 评论 -
【剑指offer】21-栈的压入与弹出序列
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该...原创 2019-06-21 10:14:34 · 251 阅读 · 0 评论 -
【剑指offer】22- 从上到下打印二叉树
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Desciption从上往下打印出二叉树的每个节点,同层节点从左至右打印。二叉树结点定义如下://Definition for binary tree struct TreeNode { int val; struct TreeNode *...原创 2019-06-22 12:22:42 · 180 阅读 · 0 评论 -
【剑指offer】6-旋转数组中的最小数字
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0...原创 2019-04-26 23:58:50 · 233 阅读 · 0 评论 -
【剑指offer】2-替换空格
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy.2-Solution下面通过两种方法解决本题,第二种方法给出详细的算法步骤,且进行...原创 2019-04-15 08:36:08 · 144 阅读 · 0 评论 -
【剑指offer】3-从尾到头打印链表
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description输入一个链表,按链表值从尾到头的顺序返回一个ArrayList,链表定义如下:struct ListNode { int val; struct ListNode *next; ListNode(int x) ...原创 2019-04-16 22:16:44 · 108 阅读 · 0 评论 -
7-取近似值
1- Description写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。输入描述:输入一个正浮点数值输出描述:输出该数值的近似整数值示例1:输入:5.5输出:62- Solution就是向上取整#include <iostream>using namespace std;int...原创 2019-03-27 16:23:52 · 149 阅读 · 0 评论 -
6-质数因子
1- Description功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )最后一个数后面也要有空格详细描述:函数接口说明:public String getResult(long ulDataInput)输入参数:long ulDataInput:输入的正整数返回值:String输入描述:输入一个long型整数。输出描述...原创 2019-03-27 16:19:15 · 261 阅读 · 0 评论 -
5- 进制转换
1- Description写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )输入描述:输入一个十六进制的数值字符串。输出描述:输出该数值的十进制字符串。示例1:输入:0xA输出:102- Solution#include <iostream>#include <string>#include <m...原创 2019-03-27 16:09:06 · 390 阅读 · 0 评论 -
4-字符串分隔
1- Description连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。输入描述:连续输入字符串(输入2次,每个字符串长度小于100)输出描述:输出到长度为8的新字符串数组示例1:输入:abc123456789输出:abc0000012345678900000002- Solution...原创 2019-03-27 15:45:01 · 248 阅读 · 0 评论 -
3-明明的随机数
1- Description明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。...原创 2019-03-27 14:54:29 · 245 阅读 · 0 评论 -
2-计算字符个数
1- Description写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。输入描述:输入一个有字母和数字以及空格组成的字符串,和一个字符输出描述:输出输入字符串中含有该字符的个数示例1:输入:ABCDEF A输出:12- Solution注意题目描述里强调的是不区分大小写的!#include <i...原创 2019-03-27 13:20:30 · 200 阅读 · 0 评论 -
1- 字符最后一个单词的长度
1- Description计算字符串最后一个单词的长度,单词以空格隔开输入描述:一个字符串,非空,长度小于5000。输出描述:整数N,最后一个单词的长度。示例1:输入:hello world输出:52- Solution需要考虑到的输入情况:1)常规输入的处理;2)输入为空的情况;3)输入仅只有一个单词的情况(如果采用空格来判断末尾单词的话)下面是利用空...原创 2019-03-27 13:17:07 · 160 阅读 · 0 评论 -
8-合并表记录
1- Description数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。输入描述:先输入键值对的个数然后输入成对的index和value值,以空格隔开输出描述:输出合并后的键值对(多行)示例1:输入:40 10 21 23 4输出:0 31 23 42- Solution这里采用...原创 2019-03-27 16:35:47 · 489 阅读 · 0 评论 -
9-数字颠倒
1- Description输入一个整数,将这个整数以字符串的形式逆序输出程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001输入描述:输入一个int整数输出描述:将这个整数以字符串的形式逆序输出示例1:输入:1516000输出:00061512- Solution直接倒序输出就行:#include <iostream>...原创 2019-03-28 08:26:11 · 365 阅读 · 0 评论 -
10-字符集合
1- Description输入一个字符串,求出该字符串包含的字符集合输入描述:每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。输出描述:每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。输入例子: 1- abcqweracb ; 2- dBowNgxyPZXZXlBTMKFskExQEK输...原创 2019-03-28 08:30:05 · 173 阅读 · 0 评论 -
【剑指offer】5-用两个栈实现队列
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网编程资料获取:CodeLab1-Description用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。2-Solution1-问题分析栈的特点是后进先出,即最后被压入(push)栈的元素会第一个被弹出(pop)队列的特点是先进先出,即第一个被压入队列的元素...原创 2019-04-21 13:56:47 · 169 阅读 · 0 评论 -
【剑指offer】1-二维数组中的查找
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。在线测试平台:牛客网1-Description在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。2-Solution2-1 暴力解法下面是直接用暴力的解法,从左上角开始一行...原创 2019-04-12 13:28:35 · 216 阅读 · 0 评论 -
16-求int型正整数在内存中存储时1的个数
1- Description输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。输入描述:输入一个整数(int类型)输出描述:这个数转换成2进制后,输出1的个数示例1:输入:5输出:22-Solution其实相当于十进制到二进制转换#include <iostream>using namespace std;int main(){...原创 2019-03-28 12:27:00 · 241 阅读 · 3 评论 -
15-字符串的连接最长路径查找
1- Description给定n个字符串,请对n个字符串按照字典序排列。输入描述:输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。输出描述:数据输出n行,输出结果为按照字典序排列的字符串。示例1:输入:9captocatcardtwotooupboatboot输出:boatbootca...原创 2019-03-28 12:18:03 · 184 阅读 · 0 评论 -
14-句子逆序
1- Description将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符接口说明/***反转句子*@param sentence 原句子*@return 反转后的句子*/public String reverse(String sentence);输入描...原创 2019-03-28 12:08:09 · 189 阅读 · 0 评论 -
13-字符串反转
1- Description写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。例如:输入描述:输入N个字符输出描述:输出该字符串反转后的字符串示例1:输入:abcd输出:dcba2- Solution直接逆序输出即可#include <iostream>#include <string>using namespace st...原创 2019-03-28 08:52:41 · 203 阅读 · 0 评论 -
12-字符个数统计
1- Description编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。输入描述:输入N个字符,字符在ACSII码范围内。输出描述:输出范围在(0~127)字符的个数。示例1:输入:abc输出:32- Solution注意resultvec.erase(resultvec.begin() + j); 的...原创 2019-03-28 08:46:57 · 315 阅读 · 0 评论