校招刷题指南

编程题训练逻辑思维能力,这是程序员需要具备的核心能力。校招还是比较看重算法能力的,刷题时建议分类型刷,先做简单题,再做比较困难的题;先刷数据结构相关的,然后是剑指offer的其他题目;刷题过程中应努力发现题目间的关联,从中总结出该类题型的一些模板或通法。刷题过程中只看重我理解了该解法,或是只看重我把这个题目做出来了,都是不对的,应该理解和实操并重,这样就能达到只刷少量经典题就能迅速提升自己编程水平的效果。

模块篇

模块篇这部分,同学们按照自己掌握的知识点去找对应知识模块的题目去联系即可

数据结构篇

数组、字符串、哈希表

数组、字符串、哈希表作为最常使用的数据结构,往往大部分问题都会用到,编程语言也提供了大量的api可供调用,我们应熟悉用循环的方式访问并操作这些数据结构,通过这些题目的练习,熟悉最基本的循环语句的写法。

https://www.nowcoder.com/practice/55fb3c68d08d46119f76ae2df7566880

https://www.nowcoder.com/practice/345e2ed5f81d4017bbb8cc6055b0b711

https://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4

https://www.nowcoder.com/practice/3d8d6a8e516e4633a2244d2934e5aa47

https://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4

链表

链表题目的核心在于链表的遍历,我们应熟悉迭代遍历链表的思路,另外链表也具有天然的递归性,所以递归的方式也能遍历链表,会给链表的问题带来一些巧妙和简洁的解法。除此之外,应关注链表的问题中经常使用的虚拟头节点、双指针等技巧。

反转链表

合并两个排序的链表

合并k个已排序的链表

判断链表中是否有环

链表中环的入口结点

链表中倒数第k个结点

链表相加

判断一个链表是否为回文结构

二叉树

二叉树的重点依然在于二叉树的遍历,应熟悉二叉树的几种遍历方式,以及那些特殊的二叉树的性质、如堆、BST树、AVL树等。二叉树的题目应充分利用递归,把问题分解为子问题,相信做完这些题目后,就能熟悉递归了

按之字形顺序打印二叉树 √

二叉树的最大深度 √

二叉树中和为某一值的路径(一) √

二叉搜索树与双向链表 √

判断是不是二叉搜索树 √

判断是不是平衡二叉树 √

在二叉树中找到两个节点的最近公共祖先 √

重建二叉树 √

栈与队列

我们需要了解栈与队列这两个线性数据结构的性质,并充分利用这些性质解决问题。

用两个栈实现队列

表达式求值

寻找第K大

数据流中的中位数

算法篇

算法公开课+优选算法课(视频+答案的形式)

查找和排序

查找和排序是最基础的算法了,需要在面试场景下能熟练的写出那几种排序算法和二分查找的代码。并通过这两类经典的算法问题理解算法设计中的时间复杂度等概念,熟悉分而治之、设计新的数据结构以及二分排除 等解决问题的常见计算机思维。

二分查找

二维数组中的查找

数组中的逆序对

寻找峰值

最小的K个数

动态规划

对于形如已知f(1)=1,f(n)-f(n-1)=1,求f(n)的题目,我们高中时所学的数学方法,往往是想办法求出f(n)关于n的公式,比如上题就是得出f(n)=n+1,然后把n带入n+1就能求出f(n)的值,但得益于计算机强大的运算速度和存储能力,编程解决此类问题的方法往往是根据f(1)和递推公式求出f(2),然后把f(2)存下来。接下来下一轮循环就能用保存的f(2),计算出f(3)了,直到计算出f(n),我们把这种方法叫动态规划,上文中的f(n)-f(n-1)=1则称为状态转移方程。

青蛙跳台阶

不同路径的数目

兑换零钱

最长回文子串

最长上升子序列

矩阵的最小路径和

背包问题

编辑距离

回溯

我们经常会遇到需要在递归调用的上下文之间传递状态的问题,对于简单的情况,我们可以通过递归函数的传参来传递这种状态,但复杂情况下,我们就需要在递归函数中用额外代码维持那个状态了,我们把这种方式称为回溯。

没有重复项数字的全排列

岛屿数量

N皇后问题

二叉树中和为某一值的路径(二)

图论算法

对于链表和树这种数据结构,我们更关心对象的存储和查询,但对于图这种数据结构,我们更关心节点之间的拓扑关系,我们应熟悉在图中找最短路径、最小生成树的算法

最短路径

最小生成树

其他算法

除了上述解决编程问题的常见思路之外,面试中遇到新题,还有一些其他的考虑问题的角度,包括贪心、数学方法、模拟方法、位运算、前缀和等,此处给出常见问题。

分糖果问题

约瑟夫环

数组中只出现一次的两个数字

设计LRU缓存结构

哈夫曼树

综合篇

刷完上面的题目之后,同学们基本也有了一定的代码基础和算法思路,那么接下来,就可以综合刷题,可以刷下面这里的算法,这里同学们可以先刷简单的,再刷中等的

简单28道

有效的括号

对称二叉树

统计一个数字在数组中出现的次数

排序数组中两个数字之和

查找插入位置

左右两边子数组的和相等

将有序列表转换为二叉搜索树

设计哈希映射

找到小镇法官

判断字符是否唯一

返回倒数第K个节点

栈的最小值

三合一

BiNode

快乐数

有效字母异味

删除重复的电子邮箱

各位相加

左子树之和

验证外星语词典

数组拆分

最长和谐子序列

删列造序

删除最外层括号

整数的各位积和之差

括号的最大嵌套深度

反转字符串

机器人能否返回原点

中等(21道)

链表求和

栈排序

括号

旋转矩阵

特定深度节点链表

递归乘法

二叉树层序遍历

最小栈

完全平方数

不同的二插搜索树

打家劫舍

最长递增子序列

为运算表达式设计优先级

两个字符串的删除操作

颜色分类

最长特殊序列

电话号码字母组合

矩阵置零

第K个最小素数分数

最大平均值和的分组

子集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/352072.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL-删除重复数据

在实际应用中,遇到一个这样的问题,MySQL中存储的数据为资讯类数据,在页面展示时会出现多个平台的新闻报导相同的内容,导致页面会出现重复数据。因为数据是每天定期更新,所以最快捷有效的方式是在更新完数据后增加一个去…

【Leetcode】2861. 最大合金数

文章目录 题目思路代码结果 题目 题目链接 假设你是一家合金制造公司的老板,你的公司使用多种金属来制造合金。现在共有 n 种不同类型的金属可以使用,并且你可以使用 k 台机器来制造合金。每台机器都需要特定数量的每种金属来创建合金。 对于第 i 台…

C++实现推箱子游戏

推箱子游戏 运行之后的效果如视频所示,在完成游戏后播放音乐 准备工作:建立一个新的文件夹,并在文件夹中任意增加一张背景图片,以及各个部件的照片文件 因为这里用到了贴图技术,要使用graphic.h这个函数&#xff0c…

详解SpringCloud微服务技术栈:DSL查询ES文档高级语法、相关性算分数学原理总结

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:详解SpringCloud微服务技术栈:ElasticSearch实践1——RestClient操作索引库与文档 📚订阅专栏&#xff1…

通信入门系列——高斯白噪声和限带高斯白噪声

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 本节目录 一、高斯白噪声 二、复高…

单调栈第二天(还没写完)

503.下一个更大元素II 力扣题目链接(opens new window) 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更…

C++位图的应用与布隆过滤器

位图的概念 用每一个二进制比特位来表示某种状态,适用于海量数据,通常用于判断某个数据是否存在 以上面试题可以用位图来解决:用一个二进制比特位来表示数据是否存在--二进制比特位为1表示存在,为0表示不存在 位图的模拟实现 #…

第五篇【传奇开心果】BeeWare的Toga库开发移动应用示例: Local Storage本地数据处理

传奇开心果博文系列 系列博文目录BeeWare的Toga库开发移动应用示例系列博文目录前言一、本地读取存储数据示例二、表格显示本地数据和清除数据示例三、添加本地数据查询功能示例四、添加本地数据修改和删除功能示例五、添加本地数据增加功能示例系列博文目录 BeeWare的Toga库开…

C语言 服务器编程-定时器

定时器 引言定时器的基本逻辑定时器信号事件 引言 传统的TCP socket模型是基于套接字(文件描述符)来传递消息的,但是文件描述符资是有限的,如果大量的连接占用了大量的文件描述符,那么新来的请求可能就无法申请到文件…

Redis为什么速度快:数据结构、存储及IO网络原理总结

Redis,作为内存数据结构存储的佼佼者,其高性能表现一直备受赞誉。那么,Redis究竟是如何实现这一点的呢?接下来,我们将更深入地探讨其背后的关键技术,并提供进一步的优化策略。 一、内存存储与数据结构设计…

MySQL数据定义语言DDL

MySQL数据定义语言DDL 目录 MySQL数据定义语言DDLDDL关键字数据定义语言DDL1.查看数据库2.创建库3.删除库4.切换库5.创建表6.删除表7.查看表8.查看表属性9.插入列10.修改列11.设置主键12.设置外键并绑定主键13.设置自增14.删除列15.重命名16.设定默认值17.添加备注18.设置是否可…

完成NAT实验

实验要求: 步骤一:配置vlan vlan b 2 3 interface GigabitEthernet 0/0/2 port link-type access port default vlan 2 interface GigabitEthernet 0/0/3 port link-type access port default vlan 3 interface GigabitEthernet 0/0/1 port link-type…

svg 属性详解:填充与边框

svg 属性详解:填充与边框 1 颜色和透明度2 填充规则 fill-rule3 边框样式3.1 stroke-width3.2 stroke-linecap3.3 stroke-linejoin3.4 stroke-dasharray 1 颜色和透明度 图像都有颜色,svg 中可以使用属性 fill 和 stroke 来修改图形的颜色。fill 属性设置…

真香一个团队协作工具部署

部署 version: "3.4"services:mongo:image: mongocontainer_name: twake-dbvolumes:- /opt/Twake/data:/data/dbnode:image: twaketech/twake-node:latestcontainer_name: twake-webports:- 3345:3000# - 8000:3000environment:- DEVproduction- SEARCH_DRIVERmong…

「 网络安全术语解读 」通用攻击模式枚举和分类CAPEC详解

引言:在网络安全领域,了解攻击者的行为和策略对于有效防御攻击至关重要。然而,攻击模式的描述和分类方式缺乏统一性和标准化。为了解决这个问题,MITRE公司创建了CAPEC标准,以提供一个共享和统一的攻击模式分类框架。 1…

用友U8接口-系统管理(3)

教程目录 部署和简要说明(1) 获取token&数据字段(2) 概括 本文的操作需要正确部署U8HttpApi对本套接口系统管理目录说明 系统管理 获取token 参考获取token 根据sql进行查询 此POST方式接口运行调用者传入SQL语句,或者将SQL语句写到xml文件中&#xff0…

Redis 面试题 | 13.精选Redis高频面试题

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

如何实现无公网IP实现远程访问MongoDB文件数据库

📑前言 本文主要是如何实现无公网IP实现远程访问MongoDB文件数据库的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 &#x…

快递对账教程

对企业行政人员来说,快递对账管理,应该是工作中最为头疼之事了。 最开始寄快递还是手写纸质快递单的时候,对企业行政来说,快递对账管理,本来就是一件麻烦事。当时大部分企业采用的都是寄前审批,寄后报销的…

数据结构·顺序表经典例题(双指针)

本节讲解两道顺序表经典例题,运用到了双指针的思想 双指针并不是两个指针,而是用两个类似指针的东西去扫描数组,以达到简化运算的效果 1. 移除元素 OJ链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平…