干货算法和编程面试题精选TOP50!(附代码+解题思路+答案)

丰富的线上&线下活动,深入探索云世界

做任务,得社区积分和周边

最真实的开发者用云体验

让每位学生受益于普惠算力

让创作激发创新

资深技术专家手把手带教

遇见技术追梦人

技术交流,直击现场

海量开发者使用工具、手册,免费下载

极速、全面、稳定、安全的开源镜像

开发手册、白皮书、案例集等实战精华

为开发者定制的Chrome浏览器插件

数组

数组数据结构的主要优点是如果知道索引就可以通过O(l)进行快速搜索,但是在数组中添加和删除元素的速度会很慢,因为数组一旦被创建,就无法更改其大小。如果需要创建更长或更短的数组,得先创建一个新数组,再把原数组中的所有元素复制到新创建的数组中。

▌1.给定一个1-100的整数数组,请找到其中缺少的数字。

解决方法与代码:

▌2.请在给出的整数数组中找到重复的数字。

▌3.如何在未排序的整数数组中找到最大值与最小值?

▌4.在给定的成对整数数组中,请找出所有总和等于给定数字的组合。

▌5.如果数组中有多个重复项,如何找到重复的数字?

▌6.用Java语言实现,在给出的数组中,删除重复项。

▌7.用quicksort算法实现对整数数组的排序。

解决方法和代码:

▌8.如何删除现有数组中的重复项?

▌9.用Java语言把数组进行反转。

解决方法和代码:

▌10.如何在不调用库的情况下删除数组中的重复项?

十个问题太少?更多复杂问题,可访问:

链表

链表是另一种常见的数据结构,和数组相似,链表也是线性的数据结构并且以线性方式存储元素。而与数组不同的是,链表不是将元素存储在连续的位置中,而是可以存储在任意位置,彼此之间通过节点相互连接。

链表有多种形式,如:单链表,允许你在一个方向上进行遍历;双链表,可以在两个方向上进行遍历;循环链表,最后节点的指针指向第一个节点从而形成一个环形的链;因为链表是一种递归数据结构,所以在解决链表问题时,熟练掌握递归算法就显得更加重要了。

▌1.如何在一次递归后找到单链表的中间元素?

▌2.检查给定的链表中是否包含循环链表,并找出循环链表的起始节点。

▌3.如何将列表反转(倒置)?

▌4.如何在没有递归的情况下反转单链表?

▌5.删除未经过排序的链表中重复的节点。

▌6.计算单链表的长度。

▌7.找出单链表中倒数第三个节点。

▌8.如何使用Stack查找两个链表的和?

这些问题可以帮你提升解决问题的能力,加深对链表数据结构的了解。

关于数组和链表间的区别,可详细阅读:

更多复杂问题,可访问:

字符串

值得庆幸的是,如果你了解数组,你可以很容易解决关于字符串的问题,因为字符串本身就是一个由字符组成的数组。

因此,你学过的所有用来解决数组编程问题的知识,也可以用来解决字符串的编程问题。

以下是一些在编程面试中高频出现的字符串问题:

▌1.如何输出字符串中重复的字符?

▌2.如何判断两个字符串是否互为回文?

▌3.如何找出字符串首个非重复的字符?

▌4.如何用递归的方法将字符串进行反转?

▌5.如何判断一个字符串是否只包含数字?

▌6.如何找到字符串中重复的字符?

▌7.如何计算一个字符串中元音字母和辅音字母的个数?

▌8.如何计算一个给定字符在字符串中出现的次数?

▌9.如何找出一个字符串的所有排列组合?

▌10.在不使用任何方法库的情况下,如何将一句话中的单词进行反转?

▌11.如何判断一个字符串是否为另一个字符串循环移动的结果?

▌12.如何判断一个字符串是否为回文?

这些问题有助于提高你对字符串数据结构的理解。如果你在没有外界帮助的情况下,可以解决所有这些字符串问题,那么你的水平已经很棒了。

若想了解更多复杂的问题,建议学习一下《AlgorithmDesignManualbyStevenSkiena》这本书中的问题,里面大都是难度很高的算法问题。

如果你需要更多的练习,可以参考这一组问题,包含20个字符串编程问题。

问题链接:

二叉树

到目前为止,我们只涉及了线性数据结构,但现实世界的所有信息都不是以线性的形式展现的,因此出现了树结构。

树结构是一种将数据进行分层存储的数据结构。根据数据存储方式的不同,存在不同类型的树,比如二叉树,其中每个节点至多有两个子节点。

和二叉查找树一样,它们都是最流行的树形式的数据结构。因此,你会发现很多问题基于它们的问题,如计算节点数,如何进行遍历,计算深度,判断它们是否平衡。

解决二叉树问题的关键是要有扎实的知识理论,如什么是二叉树的大小或深度,什么是叶,以及什么是节点。还有对当前流行的遍历算法的理解,如前序遍历、后序遍历和中序遍历。

▌1.如何部署使用二叉查找树?

▌2.给定一个二叉树,如何进行前序遍历?

▌3.在不使用递归的情况下,如何对给定二叉树进行前序遍历?

▌4.给定一个二叉树,如何进行中序遍历?

▌5.在不使用递归的情况下,如何使用中序遍历输出给定二叉树的所有节点?

▌6.如何实现后序遍历算法?

▌7.在不使用递归的情况下,如何对二叉树进行后序遍历?

▌8.如何输出一个二叉查找树的所有叶子?

▌9.如何计算一个给定二叉树的叶子节点数目?

▌10.给定一个数组,如何对其进行二叉搜索?

如果你觉得自己对二叉树编程的理解还不够,无法独自解决这些问题,我列出了我使用过的书籍:

其它算法编程问题

除了数据结构问题,大多数编程面试也会问有关算法、设计、位操作和一般的逻辑问题,在这部分中我会介绍这些问题。

在实际问题中应用这些概念是十分重要的,因为在面试中它们往往都比较难对付。多加练习不仅可以让你对这些概念更熟悉,也会让你在面试过程中更有信心。

▌1.如何实现冒泡排序算法?

▌2.如何用迭代实现快速排序算法?

▌3.如何实现插入排序算法?

▌4.如何实现归并排序算法?

▌5.如何实现桶排序算法?

▌6.如何实现计数排序算法?

▌7.如何实现基数排序算法?

▌8.在不使用第三个变量的情况下,如何交换两个数字的值?

THE END
1.自动售货机工厂湖南艾丰自动售货机有限公司,坐落于湖南省宁乡市。公司拥有厂房面积6万平米,是中国自动售货机系统解决方案提供商,全球大型的自动售货机生产基地之一。http://www.afenvending.com/
2.卫生巾自动贩售机市场调查(4个问题)自动贩售机24小时运营,有app和小程序随时获知附近自动贩售机的库存情况,数量任选,规格多种,品牌多种。*1. 如果在公共卫生间或者宿舍楼下有如上介绍的卫生巾自动贩售机,你会消费吗? 愿意尝试 会经常用,这很方便 看情况,紧急的时候才会用 不会,因为: *2. 你用湿纸巾吗? 很少用 会用,一般是用来: *3. ...https://www.wjx.cn/jq/40879733.aspx
3.POPMART泡泡玛特自动贩售机SlPOP MART泡泡玛特自动贩售机 Slogan:Make Something Fun! 坐标:中南城A座1楼东南门入口处,必胜客旁 满满的盲盒,有Molly、毕奇精灵太空系列、冬季系列、马戏团系列。 人生就像一盒各式各样的巧克力,你永远不知道下一块将会是什么口味道。 不仅仅是人生,盲盒也如此。 https://m.dianping.com/review/660608781
4.现金贷贩售机你们都在说贷款的事儿,我不得不蹭个热点,给大家看好玩儿...现金贷贩售机 你们都在说贷款的事儿,我不得不蹭个热点,给大家看好玩儿的东西。 这是1967年,日本某企业申请的自动贷款机,还很原始吧。 随着征信业的完善,到了1993年,这个构想被实现,机器的名字叫“automatic contract machine” (自动签约机) 这就是传说中线上现金贷的原始模型吧。https://xueqiu.com/7813497513/94201232
5.自动售货机崇朗自动售货机自动贩售机河北崇朗科技有限公司长期大量供应成人用品自动售货机 自动售货机等产品,河北崇朗科技有限公司是优质的供应商,已经成为搜了网一网通会员,经过第三方权威资信机构认证,诚信指数良好,欲查看详情,请点击河北崇朗科技有限公司公司网站产品展厅。http://hbclkj11800.51sole.com/companyproduct.htm
6.《无主之地3》全支线任务攻略潘多拉旱土强电连接·修好贩售机。 任务触发位置: 找到问题 马库斯请求你帮忙修理自动贩售机。 沿着黄色电缆前进,看看出了什么问题。 收集异犬脊柱 贩售机坏了,需要一根新的保险丝,马库斯告诉我们异犬脊柱可以充当保险丝。异犬一般在北面四处游荡,其中有一只成年异犬。干掉之后,拾取它的脊柱返回贩售机处。 https://www.gamersky.com/handbook/201909/1223232.shtml
1.自动售卖机价格图片品牌怎么样京东JD.COM是国内专业的自动售卖机网上购物商城,提供自动售卖机价格,报价,参数,评价,图片,品牌等信息.买自动售卖机,上京东就购了.https://www.jd.com/chanpin/963675.html
2.自动贩售机Assen捷酷狗音乐Assen捷 - 自动贩售机 作词:纪夜 作曲:谭诺龙 编曲:高漠伊、王中易 混音:斯雷嘟 她们笑我 还傻在虚构幻境之中 愚人愚己 糟糕世界恋爱 都妄想爱成一台贩售机器 满目琳琅在吸引 靠近隔去现实的玻璃 几枚硬币 未必换得来等价商品 大概是我太过于宝贝 内心底的那盏天平 忘记人和人之间有差别 天南地北的际遇 ...https://m.kugou.com/kgsong/zo0c802.html
3.自动咖啡贩售机Coffee Vending Machines One-stop Solution Pando结合不同贩售机的杯型尺寸,与消费者不同使用场景的需求(冷热饮或室内外),对杯体进行精心设计,希望令消费者在使用Pando杯时拥有安全惊喜的手握触感。https://www.pandocup.cn/solution/zi-dong-ka-fei-fan-shou-ji/
4.日本这种自动贩售机被怒批:“令人发指”一家日本公司近日推出鲸鱼肉自动贩卖机,遭到环保组织批评。据日本《每日新闻》1月28日报道,这家公司在横滨市开设了一家无人商店,设有3台鲸鱼肉自动贩卖机,向消费者提供鲸鱼生鱼片、鲸鱼培根、鲸鱼皮和鲸鱼肉罐头等各种食品,价格从1000日元(100日元约合5.2元人民币)至3000日元不等。 https://t.m.youth.cn/transfer/toutiao/url/news.youth.cn/gj/202301/t20230130_14286039.htm
5.26Verilog进阶自动贩卖机SOEASY牛客刷Verilog设计一个自动贩售机,输入货币有三种,为0.5/1/2元,饮料价格是1.5元,要求进行找零,找零只会支付0.5元。 ps: 投入的货币会自动经过边沿检测并输出一个在时钟上升沿到1,在下降沿到0的脉冲信号 注意rst为低电平复位 (2)信号示意图: d1 0.5元 d2 1元 ...https://download.csdn.net/blog/column/12239166/129545011
6.小茗同学新包装CP感获赞,搞笑贩售机成网红近日,上海地铁多站点出现了有趣的一幕,一台台“会搞笑的自动贩售机”吸引人潮驻足,尤其是年轻乘客纷纷与之互动。据悉,这些机器不仅免费赠送小茗同学新包装饮料,还因为会搞怪、会卖萌、会整蛊而制造了不少笑点,收获了不少人气。 新晋网红:会搞笑的自动贩售机 ...https://www.chinanews.com.cn/m/business/2017/03-10/8170867.shtml
7.自动杂志贩售机Python界面框mob6454cc6c8549的技术博客自动杂志贩售机Python界面框 演示2:python的tkinter制作自动售货机-针对初学者 说明 知识点 效果 源码 说明 本示例使用random、tkinter实现,tk空间参数类似html的参数。可针对初学者学习。 知识点 1.Cavas画布 ca=Cavas(tk,width,height,bg) tk:tkinter.Tk()...https://blog.51cto.com/u_16099243/11486016
8.中国那些事儿美媒:中国成世界零售创新“实验室”消费者获益多2018年3月,广州首个汽车自动贩售机落地,从此买车也变得十分轻松。买家再也不必到各个店里试驾,而可以上网预约试驾时间,然后便能在摩天轮状的汽车自动贩售机上刷脸取车。该机器可容纳30辆宝马,福特和沃尔沃等车型的汽车。为期三天的试驾费仅为几百元,但保证金可达数千元。https://www.jfdaily.com/wx/detail.do?id=111926