cc++笔试题.docx

上传人:bingdianyonhu 文档编号:8002955 上传时间:2022-07-22 格式:DOCX 页数:17 大小:95.07KB
下载 相关 举报
cc++笔试题.docx_第1页
第1页 / 共17页
cc++笔试题.docx_第2页
第2页 / 共17页
cc++笔试题.docx_第3页
第3页 / 共17页
cc++笔试题.docx_第4页
第4页 / 共17页
cc++笔试题.docx_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、1.数组中重复的数字找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:2, 3, 1, 0, 2, 5, 3输出:2 或 3 限制:2 = n = 1000002.用两个栈实现队列 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:CQu

2、eue,appendTail,deleteHead,deleteHead,3,输出:null,null,3,-1示例 2:输入:CQueue,deleteHead,appendTail,appendTail,deleteHead,deleteHead,5,2,输出:null,-1,null,null,5,2提示: 1 = values = 10000 最多会对 appendTail、deleteHead 进行 10000 次调用3.二维数组中的查找, 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组

3、和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:1, 4, 7, 11, 15,2, 5, 8, 12, 19,3, 6, 9, 16, 22,10, 13, 14, 17, 24,18, 21, 23, 26, 30给定 target = 5,返回 true。给定 target = 20,返回 false。限制:0 = n = 10000 = m = 10004.从尾到头打印链表, 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = 1,3,2输出:2,3,1限制:0 = 链表长度 1.斐波那契数列由 0 和 1 开始,

4、之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1示例 2:输入:n = 5输出:5提示: 0 = n = 1006.青蛙跳台阶问题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21示例 3:输入:n = 0输出:1提示: 0 = n 2-3-4-

5、5-NULL输出: 5-4-3-2-1-NULL限制:0 = 节点个数 2-3-4-5-NULL输出: 5-4-3-2-1-NULL限制:0 = 节点个数 1 - 9.示例 2:输入: head = 4,5,1,9, val = 1输出: 4,5,9解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 - 5 - 9.说明: 题目保证链表中节点的值互不相同 若使用 C 或 C+ 语言,你不需要 free 或 delete 被删除的节点12. 调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,

6、所有偶数位于数组的后半部分。示例:输入:nums = 1,2,3,4输出:1,3,2,4 注:3,1,2,4 也是正确的答案之一。提示:1. 1 = nums.length = 500002. 1 = numsi 2-3-4-5, 和 k = 2.返回链表 4-5.14. 二叉树的镜像请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 4 / 2 7 / / 1 3 6 9镜像输出: 4 / 7 2 / / 9 6 3 1示例 1:输入:root = 4,2,7,1,3,6,9输出:4,7,2,9,6,3,1限制:0 = 节点个数 = 100015. 顺时针打印矩阵 输入一个矩阵,

7、按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = 1,2,3,4,5,6,7,8,9输出:1,2,3,6,9,8,7,4,5示例 2:输入:matrix = 1,2,3,4,5,6,7,8,9,10,11,12输出:1,2,3,4,8,12,11,10,9,5,6,7限制: 0 = matrix.length = 100 0 = matrixi.length = 10016. 数组中出现次数超过一半的数字数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: 1, 2, 3, 2,

8、2, 2, 5, 4, 2输出: 2限制:1 = 数组长度 = 5000017. 最小的k个数输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = 3,2,1, k = 2输出:1,2 或者 2,1示例 2:输入:arr = 0,1,2,1, k = 1输出:0限制: 0 = k = arr.length = 10000 0 = arri = 1000018. 连续子数组的最大和输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n

9、)。示例1:输入: nums = -2,1,-3,4,-1,2,1,-5,4输出: 6解释: 连续子数组 4,-1,2,1 的和最大,为 6。提示: 1 = arr.length = 105 -100 = arri = 10019. 第一个只出现一次的字符在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = abaccdeff返回 bs = 返回 限制:0 = s 的长度 = 5000020. 两个链表的第一个公共节点输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal =

10、 8, listA = 4,1,8,4,5, listB = 5,0,1,8,4,5, skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表 A 为 4,1,8,4,5,链表 B 为 5,0,1,8,4,5。在 A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点。示例 2:输入:intersectVal = 2, listA = 0,9,1,2,4, listB = 3,2,4, skipA = 3, skipB

11、 1输出:Reference of the node with value = 2输入解释:相交节点的值为 2 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表 A 为 0,9,1,2,4,链表 B 为 3,2,4。在 A 中,相交节点前有 3 个节点;在 B 中,相交节点前有 1 个节点。示例 3:输入:intersectVal = 0, listA = 2,6,4, listB = 1,5, skipA = 3, skipB = 2输出:null输入解释:从各自的表头开始算起,链表 A 为 2,6,4,链表 B 为 1,5。由于这两个链表不相交,所以 intersect

12、Val 必须为 0,而 skipA 和 skipB 可以是任意值。解释:这两个链表不相交,因此返回 null。注意: 如果两个链表没有交点,返回 null. 在返回结果后,两个链表仍须保持原有的结构。 可假定整个链表结构中没有循环。 程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。21. 在排序数组中查找数字 I 统计一个数字在排序数组中出现的次数。示例 1:输入: nums = 5,7,7,8,8,10, target = 8输出: 2示例 2:输入: nums = 5,7,7,8,8,10, target = 6输出: 0限制:0 = 数组长度 = 5000022. 二叉搜索树

13、的第k大节点给定一棵二叉搜索树,请找出其中第k大的节点。示例 1:输入: root = 3,1,4,null,2, k = 1 3/ 1 4 2输出: 4示例 2:输入: root = 5,3,6,2,4,null,null,1, k = 3 5 / 3 6 / 2 4/1输出: 4限制:1 k 二叉搜索树元素个数23. 扑克牌中的顺子从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。210为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。示例 1:输入: 1,2,3,4,5输出: True示例 2:输入: 0,0,1

14、2,5输出: True限制:数组长度为 5 数组的数取值为 0, 13 .24. 从上到下打印二叉树从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如: 给定二叉树: 3,9,20,null,null,15,7, 3 / 9 20 / 15 7返回:3,9,20,15,7提示:1. 节点总数 = 100025.输入整数a和b,若a*a+b*b大于100,则输出a*a+b*b百位以上的数字,否则输出两数之和输入:一行,输入两个整数a、b,中间用单个空格隔开。输出:一行,一个整数,a*a+b*b百位以上的数字或者输出两数之和。样例输入1:5 6样例输出1:11样例输入2:6

15、 9样例输出2:11726.设计一个界面在编辑框中输入字符串,格式为:“#,#,#,#;#,#,#,#;”,例如:3,5,6;7,8;点击按钮的时候,进行字符串解析,字符串解析方式:先按“;”分隔,分隔出的字符串再按“,”分隔,存入到vectorvector结构中,并在List控件中显示出来所有的排列组合,比如例子中的结果为:3,73,85,75,86,76,8主要函数如下:voidParseStringToVector(constCString&strData,vectorvector&vecData)/addcodehere最后提交一个完整的项目文件发给我们要求:编码规范,逻辑清晰,程序拒

16、用通用性(比如“3,5,6;7,8;9,10,11;”,“3,5,6;7,8;9,10,11;13,14,16;17,18;19,50;”都可以匹配正确)使用QT、mfc或其他都可以.1.指针和引用的区别2.进程、线程、协程 区别3.TCP / UDP 有什么不同, 具体使用场景4.Http Get和Post区别5.stack 和 queue 区别,分别举一个使用场景6.快排的思想是?为啥快排快?快排稳定吗?7.当多个线程访问同一变量时,可能会产生什么问题?8、深拷贝和浅拷贝的区别?9、进程间通信有哪些方法?10、常用的排序算法举例?他们各自的优缺点是?11、常用的http请求方法有哪些,他们

17、的区别是什么?12、列举三种你知道的设计模式,并简述应用场景。13、求两个字符串的最大重合长度,并输出重合部分。14、编写代码,使用快速排序法对数组内元素进行排序。15、实现一个线程池。16、堆区和栈区的区别17、静态成员变量18、一个进程中,我不停的向其中push_back数据元素会发生什么?19、如果我们要自己实现一个单向链表,那么我们该怎么实现?20、说一下常用的进程间通信的方法。说一下共享内存。21、说一下线程间的同步方式。22、编写一个函数,它去找出uint32中的每一个位为1的位。23、说一下select、poll和epoll的区别24、说一下strace和GDB如何联合使用25、说一下C+的四种类型转换26、说一下智能指针27、STL模板库用了哪些28、std:vector的存储机制std:map的底层实现29、冒泡排序和快速排序的时间复杂度30、进程和线程的区别31、客户端和服务器之间通信的时候调用了哪些系统函数32、说一下三次握手和四次挥手33、如何使用shell在一个目录下找到一个大于10k小于50k的文件34、如何打印一个文本文件的倒数第二行35、使用top命令出现的关键值都有些啥36、如何处理端口占用的情况37、用echo打印一个字符串的前十个字符38、假如有两个50亿字节的字符串,如何找到它俩里面相同的字符串38、ARM指令集和X86指令集的区别

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > C/C++资料

一课资料网交流QQ群:678591818  网站客服QQ:2935355895 copyright@ 2020-2024 www.ekdoc.com网站版权所有

经营许可证编号:鄂ICP备20004875号