首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
HBU_Nightmare
获赞
0
粉丝
0
关注
5
看过 TA
3
女
河北大学
2026
C++
IP属地:河北
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑HBU_Nightmare吗?
发布(13)
评论
刷题
收藏
HBU_Nightmare
关注TA,不错过内容更新
关注
昨天 16:42
已编辑
河北大学 C++
二叉树的层序遍历
层序遍历就是从左到右一层一层的遍历二叉树,相当于图论中的广度优先搜索。二叉树的层序遍历需要借助队列这种数据结构,因为队列的特点是先进先出,符合层序遍历的逻辑。102.二叉树的层序遍历:这道题是后续与二叉树层序遍历相关问题的基石。整个二叉树用一个List集合保存(代码中命名为了result),而这个集合中保存的是多个子集合,每个子集合表示二叉树中每层的所有元素(代码中命名为了level)。具体实现如下:queue这个集合用于模拟队列,保存每个处理过的结点。thisLevel表示当前处理的这层有多少个结点,nextLevel用于判断下一层有多少个结点。while循环在队列中还有结点没有出队的时候,...
0
点赞
评论
收藏
分享
07-12 17:42
河北大学 C++
栈和队列
150.逆波兰表达式求值:这道题不难,用两个栈对于要处理的字符串数组进行处理。然后分情况来处理表达式即可。
0
点赞
评论
收藏
分享
07-10 17:21
河北大学 C++
栈和队列
队列是先进先出,栈是后进先出。栈和队列是STL(C++标准库)里面的两个数据结构,不同版本的STL这两个数据结构的实现存在区别。栈和队列不提供迭代器,所以无法通过迭代器对其进行遍历。所以STL中栈和队列往往不被归类为容器。而栈的内部结构可以是vector、deque或者list均是可以的,主要就是数组和链表的底层实现。如果没有指定,栈和队列通常是用deque实现的,deque是双向队列,两端都是开口的,只要封住一段,另一端开口即可实现栈的逻辑。232.用栈实现队列:这是一道模拟题,可以用两个List集合来模拟队列后进先出的特性即可实现。225.用队列实现栈:和232题不同,225不需要两个Li...
0
点赞
评论
收藏
分享
07-08 17:49
河北大学 C++
字符串刷题
151.反转字符串中的单词:这道题先对字符串进行预处理,去除掉字符串开头、结尾和中间多余的空格。之后利用split函数对字符串进行分割,最后将对应位置的单词进行反转即可。28.实现strStr():这道题不难,只需要循环对比即可,实现的时间复杂度为O(N),空间复杂度为O(M+N)。但是这道题需要重点学习KMP算法。KMP算法就是当字符串出现不匹配时,可以记录一部分之前已经匹配上的文本内容,利用这些信息避免之后再从头开始对比。字符串总结字符串是若干个字符组成的有限序列,可以理解为一个字符数组。字符串相关操作比较简单。
0
点赞
评论
收藏
分享
07-07 16:18
河北大学 C++
字符串刷题Day01
344.反转字符串:简单题,从两头开始向中间遍历整个数组,然后首尾交换位置即可。541.反转字符串Ⅱ:简单题,根据规则处理三种需要进行反转的情况即可。
0
点赞
评论
收藏
分享
07-06 15:35
河北大学 C++
哈希表刷题
383.赎金信:这道题和有效字母异位词很像,那道题是判断两个单词是否可以相互组成。而这道题是单向的,只用判断用magazine中的字母能否组成ransomNote即可,而不用关心ransomNote能否组成magazine。这道题做法与有效字母异位词完全一致。15.三数之和:这道题如果用暴力的做法,会有五个题运行超时。所以肯定不能直接使用暴力解法。这道题棘手的问题在于:结果中不可包含重复的三元组。如果把符合的三元组加入结果集合result中,然后再去重;或者说将每个要加入的三元组的三个数字进行排序,确定和结果中已经存在的子集合不完全相同再加入都很复杂,很容易超时。在进行判断的时候,比如集合{-...
0
点赞
评论
收藏
分享
07-05 16:36
已编辑
河北大学 C++
哈希表理论基础
哈希表Hash Table又称散列表。哈希表是根据关键码的值直接进行访问的数据结构。而数组其实就是一张哈希表,哈希表可以根据key的值(数组的索引下标),直接访问key对应的value(数组中的元素)。哈希表的应用场景:用于快速判断集合中是否包含某个元素。哈希函数:将要用哈希表存储的值直接映射为该数据在哈希表上的位置索引,之后即可通过查询索引下标快速判断要查询的值是否在哈希表中。具体的做法是:将要存储的值通过hashcode转化为数值,并根据该数值将要存储的数据映射到哈希表的对应位置上。若得到的数值大于哈希表的大小,则对其进行取余操作,之后即可将每个数据映射在哈希表上的唯一位置。但是可能存在多...
0
点赞
评论
收藏
分享
06-27 11:34
河北大学 C++
数组part02
209.长度最小子数组这道题的是滑动窗口的入门题目。一开始使用的是暴力解法,使用了双层嵌套的for循环,外层循环控制遍历的起始位置,内层循环控制遍历的结束位置,然后去搜索每个可能的子数组,判断其是否满足条件。但是现在在leetcode这么提交代码已经超时了。滑动窗口的思想是,使用一次for循环去做两次for循环做的事,让for循环指向结束位置end,初始值为0,并不断移动end的位置。定义一个变量start指向起始位置,start的初始值为0。当向后移动end时,会把整个窗口里的值加到变量sum里。当sum>=target时,证明找到了一个子窗口,但是会继续向后移动起始位置start,以...
0
点赞
评论
收藏
分享
06-25 15:47
已编辑
河北大学 C++
数组理论基础
数组在内存中的存储方式:数组是存放在连续内存空间上的相同类型数据的集合。数组可以通过下标索引的方式获取到下标对应的数据。注意:①.数组下标从零开始。②.数组内存空间的地址是连续的。对于数组操作的特点:查找方便,增删繁琐。注意:C++中vector和array的区别,vector的底层实现是array,严格来说vector是容器,而不是一个数组。对于二维数组,其内存是否连续取决于使用的语言,如C++中其内存地址就是连续的。704.二分查找二分法的应用条件:①有序数组。②数组中没有重复元素。若存在重复元素,则可能导致返回的数组下标不唯一。二分法区间:注意左闭右闭和左闭右开的区别。此处的右侧所谓的开...
0
点赞
评论
收藏
分享
07-13 16:18
已编辑
河北大学 C++
二叉树
解题过程中可能会遇到的二叉树类型可以分为:满二叉树和完全二叉树。满二叉树:如果一个二叉树只有度为0和2的结点,且所有度为0的结点都在二叉树的同一层,则称这个二叉树为满二叉树。满二叉树形如:而对于深度为k的满二叉树,其结点个数为2^k-1。完全二叉树:完全二叉树中只有在最底层可能没有被结点填满,其余每层的结点数都达到了最大值。并且最下面一层的结点都集中在该层最左边的若干位置。而最底层(设为第k层)可能包含的结点数为1~2^(k-1)。完全二叉树形如:从上图中可以看出:完全二叉树中最底层的结点必须是从左到右添加的,若最底层中某个位置没有结点,而该位置的右侧仍然有叶子节点(如上图三所示),则表明该树...
0
点赞
评论
收藏
分享
04-28 15:46
河北大学 C++
哈希表理论基础
哈希表Hash Table又称散列表。数组其实就是一张哈希表,哈希表可以根据key的值(数组的索引下标),直接访问key对应的value(数组中的元素)。哈希表的应用场景:用于快速判断集合中是否包含某个元素。哈希函数:将要用哈希表存储的值直接映射为该数据在哈希表上的位置索引,之后即可通过查询索引下标快速判断要查询的值是否在哈希表中。具体的做法是:将要存储的值通过hashcode转化为数值,若得到的数值大于哈希表的大小,则对其进行取余操作,之后即可得到该数据映射在哈希表上的位置。但是可能存在多个数据被映射到哈希表中的同一个位置的情况,这种情况被称为哈希碰撞。哈希碰撞:哈希碰撞的解决方案包括:拉链...
0
点赞
评论
收藏
分享
04-28 00:16
河北大学 C++
链表刷题
前三道题(LeetCode题号24、19和面试题02.07)相对还好。链表的题要注意的:①空指针的情况要考虑清楚。②在移动位置时要考虑全面参与移动的所有结点的情况。最难的题是142环形链表。这个题难点在于没想到怎么判断是否存在循环。看了解析才知道,利用一个fast和一个slow,fast一次向后推进两个结点,slow一次向后推进一个结点。每次fast都会追slow一个结点。所以fast迟早会追上slow,如果fast==slow则存在循环;若fast往后推进发现fast.next或fast.next.next为null,则不存在循环。第二个难点,在于确定循环之后,怎么判断结点的下标,这个还需要...
0
点赞
评论
收藏
分享
04-25 19:06
河北大学 C++
链表理论基础
链表是通过指针串联在一起的线性结构。链表中的每个结点可以分为两个部分:数据域和指针域。数据域用于存储该结点存储的数据。指针域用于记录下一个结点的指针,若指针域为null,则表明该结点是链表中的最后一个结点。链表的入口结点也就是链表的第一个结点,被称为头结点。链表的分类可以分为:单链表、双链表和循环链表。单链表:结点中仅包含一个指针,且该指针指向链表中的下一个结点,这种链表就被称为单链表。双链表:每个结点中包含两个指针,一个指针指向下一个结点,一个指针指向上一个结点。则由包含两个指针的结点组成的链表被称为双链表。单链表只能向后查询,不能向前查询。但是双链表既可以向后查询也可以向前查询。循环链表:...
0
点赞
评论
收藏
分享
1
创作者周榜
更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务