吴师兄学算法

其他

如何挑选一台云服务器

以前,我作为一个个人开发者,倒腾过一些入门级别的云服务器,玩玩技术,不太在意云服务器的性能。部署个人博客网站只是最简单的操作,弄弄私人网盘、搞搞图床图库更是随心所欲,跑跑
2022年10月31日
其他

字节挂在了第一面!

大家好,我是吴师兄。前两天,有个同学私聊我,字节第一面挂了,因为有一道算法题没做出来。不过,他反而更有信心刷题了。因为,他发现,算法并没有那么难!为什么呢?因为大厂算法面试,90%
2022年4月13日
其他

从工地打工,到狂揽10个大厂offer、副业赚100万:培训班出来的程序员是怎么做到的?

里面所有英雄的技能,它们的技能冷却时间,出兵的时间点,什么时候拉野最合适,哪个位置插真眼,哪个位置插假眼不易被扫描,哪个英雄克制哪个英雄,只为了玩好这个游戏。当时乐此不疲的制作类似的
2022年1月18日
其他

看书还是看视频?

哈喽,大家好,我是吴师兄,前段时间吴师兄写了两篇关于看视频和看书的一点小建议,事实上,一直以来,关于学习技术时「到底是看视频好还是看书好」这个问题,经常被很多人提及,咱这里都看过好多次了。
2021年7月29日
其他

我终于把红黑树撕明白了

这是红黑树最重要的一条性质,也是红黑树的价值所在。由于红黑树是由2-3树转换而来,因此每一个黑色节点必然对应2-3树的某个2-节点或者3-节点,因此红黑树的黑节点也能拥有2-3树的平衡性。
2021年7月21日
其他

不懂算法,去大厂,真香!

绞尽脑汁看懂了别人的文章,废了九牛二虎之力总算写出了代码,我高高兴兴去做下一题,没过几天打算重新做一遍旧题,结果都变成了熟悉的陌生题,嗨,这些题白刷了!
2021年7月20日
其他

从工地打工,到狂揽10个大厂offer、副业赚100万:培训班出来的程序员是怎么做到的?

带着这个想法,开始思考自己能去做些什么来缓解这股焦虑,我想到了我的经历,我能否帮助那些和我一样曾经深陷迷茫的程序员走出困境,能不能帮助一些转行或者初级程序员顺利通过算法面试找到好工作?
2021年7月19日
其他

看书的一点小建议。。。

技术上可以分为两类,对于专业性强的书籍先阅读前言,建立自己的思维导图再花时间去阅读;对于专业性不强的杂牌书可以当小说看,没事翻一翻;优先选择正统的路线开始学。
2021年7月12日
其他

看视频的一点小建议

由于时间的限制,录制视频的人往往无法复刻所有的编程过程,有的时候甚至裁剪,造成了一个需要两个小时的编码时间,视频里面只有十几分钟,一切都是那么的行云流水,一切都是那么的顺其自然,毫无停顿。
2021年6月20日
其他

宣布一件大事

但不是每个想进大厂刷题的人都有我这么幸运,由于没有正确的方法+没有一个良好的刷题氛围,很多同学都坚持不下去,所以拖着,一来二去的一年过去自己还在原地踏步,理想的大厂offer
2021年5月17日
其他

关于学习编程,我曾走了一些弯路

写技术教程在我们十几年的求学生涯中,关于知识的获取基本上都在执行以下步骤:
2021年3月24日
其他

动态规划之武林秘籍

这个响亮的大名你可能已经望而却步,那是因为这个响亮的名字真的真的很具有迷惑性,不像递归、回溯和贪心等等算法一样,其文即其意,而动态规划则不同,很容易望文生义,真可谓害人不浅,今天我就带大家一起扒一扒
2020年11月4日
其他

带你领略拼多多 2020 校招笔试题,这样的难度你可以搞定吗?

大家好,本来今天想写一篇算法和数据结构的。但是看了一眼计划,发现基本上大部分基础的内容都已经讲过了。接下去就是一些竞赛相关的算法了,刚好最近是校招季,所以写一点笔试题的题解,也许对大家的招聘有点用。这一次选了拼多多的校招笔试题其中的一题,在写文章的时候还看到了小马智行的。也就是那个楼教主创办的著名的pony.ai,但是我点进去看了一眼,发现大部分都是acm竞赛题的风格,难度对于普通学生而言有些高了。所以没有采纳,改选了拼多多的试题。题意给定一个整数N,代表N个盒子。第i个盒子当中有i个球。我们可以选定一个N以内的自然数X,多多鸡会把所有盒中小球数量大于X的盒子减少X个球。现在想要用最少的步骤将所有盒子的球清空,请问最少需要多少次操作?样例第一行输入一个整数t,表示测试组数。对于每一行都输入一个整数N()要求对于每组数据输出一个整数作为结果。分析我们仔细分析一下,会发现这题的难点有两个。第一个是这个N的范围太大了,对我们的复杂度限制得很高。第二点是盒子当中球的数量是动态的,在如此苛刻的复杂度要求下,我们很难掌握所有盒子的动态。但如果你有足够多经验的话,会发现N的范围其实并不是限制而是提示。N的范围达到1e9,在这个量级下我们连的计算都是会超时的,也就是说所有需要遍历盒子的算法都可以放弃了,看似苛刻,其实会节省我们很多时间。如果N的范围给个1e6,那才是真的恶心。估计很多同学要被骗了,苦苦思考怎么样通过模拟的方法来计算。既然范围是1e9,那么没的说,这题一定是通过一些巧妙的方法来计算的。但是究竟是什么巧妙的方法,我们干想是想不出来的,要想知道也不难,尝试着去做一下就可以找到门道了。我们假设我们第一次选择了k,也就是序号大于等于k的盒子里球的数量都减少了k。那么减少之后的情况变成什么样了呢?我们列出来看看:。有些同学看到这个可能会想第二个数字选什么,如果你这么想了,可能你做的题目还不够多,不够敏感。其实看到这个已经可以发现,当我们选择了k之后,数组被拆分成了两个部分,左边是0到k-1,右边是1到N-k,中间0是分割线。这一点发现有什么用呢?其实很有用,我们首先来做一个假设,假设k-1
2020年11月3日
自由知乎 自由微博
其他

计算机专业几本必看的书!

今天给大家推荐几本计算机专业必看的书,当今社会,要说哪个专业或者领域最火爆最受欢迎,计算机专业当之无愧可以进入Top3。日常生活中的各行各业都离不开计算机的支持,无处不在。而且,计算机行业给的薪资也是非常非常非常可观令人心动!(本人就是因为计算机赚的多才选的计算机专业,如今头发已经快掉完了,哈哈哈)。但是,计算机专业所涵盖知识之广,难度之大,让很多小白或者刚入门的同学望而生却,不知所措。今天,我就为大家推荐几部计算机专业最经典的必读书籍,帮助各位快速并且系统的学习计算机专业。1.《深入理解计算机系统》(CSAPP)无论是处于哪个阶段的同学,这部书都是必备的。正如此书开篇作者所言“如果你全心投身学习这本书中的概念,完全理解底层计算机系统以及它对应用程序的理解,你会步上成为为数不多的大牛之路”。这是一本很基础的书,涵盖了计算机组成原理,操作系统,体系结构,网络编程,并行程序设计原理等课程的基础知识。学习这本书,你就会对计算机底层世界有一个宏观的认知,搞清楚计算机底层的工作原理,为什么它可以完成如此复杂的工作?为什么一个小小的cpu却又如此强大?最简单的“hello,word”程序是怎么运行的?当然,因为这本书包含很多概念,专业术语,读起来可能比较晦涩,大家也不必一口气读完,可以在学习整个计算机过程中慢慢去读,慢慢理解。2.关于编程语言到底哪种编程语言是世界上最好的语言是程序员永远无法达成一致的世界难题。小编结合自身七年的学习经验以及针对当前社会的需求,给大家推荐三门编程语言(C++/Java/Python)以及相关的书籍。1)《C++
2020年11月2日
其他

如何优雅地给妹子优化电脑(Windows)?

PE缓缓在屏幕上展开。7、祖师爷都无法搭救姑娘看着Windows
2020年10月31日
其他

薅,薅个当当的大羊毛~

感谢这世界的程序员可以说,没有程序员,就没有现在多姿多彩的互联网。程序员们通过coding改变世界,创造更加美好的生活。也以实际行动在浮躁的世界里,坚持自己对于知识、技术和创新的追求。让我们一起阅读经典,紧跟前沿技术不掉队爱读书的你们又双叒叕可以下手啦
2020年10月23日
其他

计算机专业的学生怎样练习编程才能把编程学精通?

读者问:吴师兄好,我是刚上大一的计算机专业的学生,想请教下计算机专业的学生怎样练习编程才能把编程学精通?以下是我的回答:程序员的简历,大多会有一个部分,叫“专业技能”(计算机专业的学生吃饭的家伙),其中一二三四列出来自己的技术所长,这就涉及一些用词,如常见的“精通”、“掌握”、“熟悉”、“了解”等等。事实上,精通、掌握、熟悉其实都是很主观的词,每个人的理解都不一样。你可能觉得会写个
2020年9月23日
其他

键盘敲入 A 字母时,操作系统期间发生了什么...

控制器会向磁盘控制器发出指令,通知它从磁盘读数据到其内部的缓冲区中,接着磁盘控制器将缓冲区的数据传输到内存;当磁盘控制器把数据传输到内存的操作完成后,磁盘控制器在总线上发出一个确认成功的信号到
2020年8月24日
其他

这 3 个学数据结构和算法的网站,相信你也会喜欢的!

等,还有控制台也会输出整个执行的过程,能帮你更好的理解算法,如下图所示:内容演示我们用它来演示一下冒泡排序的执行过程,如下图所示:网站特点算法可视化算法的具体实现代码(支持
2020年8月2日
其他

国内开发者在 GitHub 上开源 LeetCode 刷题模板,火爆全网!

现已正式上线!专注于为大家分享优质的计算机学习资源与开发者工具。如果今天的推荐符合你的口味,请在文章点赞,以表示对我的支持,你们的点赞和转发关注,是我持续更新的动力^_^
2020年8月1日
其他

Linux 思维导图整理(建议收藏)

命令参考地址:https://linuxtoy.org/archives/unix-linux-command-cheat-sheet.htmlLinux
2020年7月7日
其他

又一 VSCode 神器诞生!

所开源的插件,其主要作用,就是能帮你快速组织各类文章与笔记,并生成可访问的内容节点,方便你后续更好的进行创作。一图胜千言,下面放张具体的插件演示图,让你们感受下:从上图你可以明显看到,在编辑完
2020年7月7日
其他

厉害了,程序员的高考试卷,你能拿几分?

点击上方“五分钟学算法”,选择“星标”公众号重磅干货,第一时间送达本文来源网络,作者不详你是不是还在怀念曾经逝去的高三,遗憾自己没有超常发挥,或者遗憾自己志愿表没有填好。其实,只要志愿选的好,年年期末像高考。比如,你选择了计算机专业,那么你将面临高等数学、线性代数、C语言、计算机引论、离散数学、电子技术、C++程序设计、汇编语言程序设计、计算机组成原理、编译原理、操作系统、数据库原理……下面一套程序员高考试卷,带你重温一下高考,顺便测试一下自己是否是一个合格的程序员吧~1.本试卷所有题目都是单选题,每题5分,共20题,满分100分;2.考试时间为10分钟;3.请自己独立作答;4.考试结束后,请将本试卷分享到朋友圈。1、程序员A:借我1000元吧。程序员B:给你凑个整数。请问程序员B借给程序员A多少钱?()A.
2020年7月6日
其他

LeetCode 例题精讲 | 18 前缀和:空间换时间的技巧

函数这道题目的解法很直白,难点在于如何减少时间复杂度。我们来看看不同的解法的时间、空间复杂度有何区别。解法一:暴力法如果用暴力解法,每次调用
2020年7月6日
其他

肝了很久!操作系统核心概念第二弹来了!

virtualization):全虚拟化是硬件虚拟化的一种,允许未经修改的操作系统隔离运行。对于全虚拟化,硬件特征会被映射到虚拟机上,这些特征包括完整的指令集、I/O操作、中断和内存管理等。58.
2020年7月5日
其他

和面试官聊聊「插入排序」的正确姿势

点击上方“五分钟学算法”,选择“星标”公众号重磅干货,第一时间送达转自景禹大家好呀,我是景禹。今日分享一下插入排序,希望你从中有所收获!面试官最爱考察的是一个被试者对知识掌握的灵活程度和熟练程度,当一道题目可以同时考察到被试者多个知识点的掌握程度和思考能力时,面试官最爱这样的题目,而且对于插入排序这样被大家耳熟能详的知识点,常常成为考点。插入排序
2020年7月4日
其他

Linux系统内存知识总结

原理它允许多个不相关的进程去访问同一部分逻辑内存两个运行中的进程之间传输数据,共享内存将是一种效率极高的解决方案两个运行中的进程共享数据,是进程间通信的高效方法,可有效减少数据拷贝的次数2)
2020年7月4日
其他

全体起立!给我讲讲洗牌算法和它的应用场景吧!

点击上方“五分钟学算法”,选择“星标”公众号重磅干货,第一时间送达有一次参加面试,面试官问我:“会玩牌吧?”内心:“咋滴,这是要玩德州扑克(或者炸金花),赢了他就能通过面试么?”结果……没想到面试官的下一句话:“给我讲讲洗牌算法以及它的应用场景吧!”哈哈,以上内容纯属虚构背景本文产生背景是看到了
2020年7月2日
其他

程序员有了这几款神器,瞬间逼格就上去了!

等),可以定期出报告,比如每周邮件出周报,汇报你当周的使用情况。划重点:若在公司场合,请注意信息安全,最好不要在公司电脑装类似的软件哦。来个例子,如下图所示为我某一周的周报:rescuetime
2020年7月2日
其他

计算机网络基础知识总结

Layer)。其中第四层完成数据传送服务,上面三层面向用户。除了标准的OSI七层模型以外,常见的网络层次划分还有TCP/IP四层协议以及TCP/IP五层协议,它们之间的对应关系如下图所示:
2020年6月29日
其他

GitHub 上这个「计算机科学」自学指南火了!

个小时学习完每一个科目,然后在你职业生涯中,不时温习其中的精髓🚀。科目为何要学?最佳书籍最佳视频编程不要做一个“永远没彻底搞懂”诸如递归等概念的程序员。《计算机程序的构造和解释》Brian
2020年6月29日
其他

吴师兄实名吐槽 LeetCode 上的一道题目。。。

用两个栈实现队列。题目链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/一、题目描述
2020年6月18日
其他

面试字节跳动时,我竟然遇到了原题……

输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历
2020年6月15日
其他

为什么 MySQL 使用 B+ 树

Processing,从这两个名字中我们就可以看出,前者指的就是传统的关系型数据库,主要用于处理基本的、日常的事务处理,而后者主要在数据仓库中使用,用于支持一些复杂的分析和决策。作为支撑
2020年6月14日
其他

一道简简单单的字节跳动算法面试题

次。题目链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/一、题目描述
2020年6月13日
其他

新手使用 GitHub 必备的两个神器

现已正式上线!专注于为大家分享优质的计算机学习资源与开发者工具。如果今天的推荐符合你的口味,请在文章点赞,以表示对我的支持,你们的点赞和转发关注,是我持续更新的动力^_^
2020年6月11日
其他

卧槽!红警代码竟然开源了!!!

现已正式上线!专注于为大家分享优质的计算机学习资源与开发者工具。如果今天的推荐符合你的口味,请在文章点赞,以表示对我的支持,你们的点赞和转发关注,是我持续更新的动力^_^
2020年6月7日
其他

计算机基础知识对程序员来说有多重要?

例如我们把权限划分为以下几种:获取你的头像、性别、昵称等基本用户信息以你的身份发布微博获取你的好友列表获取你的朋友圈信息每勾选一个选项,就代表着这个权限被授权,为了保证可扩展性,我们使用一个
2020年5月28日
其他

24张图,九大数据结构安排得明明白白!

点击关注上方“五分钟学算法”,设为“置顶或星标”,第一时间送达干货。数据结构想必大家都不会陌生,对于一个成熟的程序员而言,熟悉和掌握数据结构和算法也是基本功之一。数据结构本身其实不过是数据按照特点关系进行存储或者组织的集合,特殊的结构在不同的应用场景中往往会带来不一样的处理效率。常用的数据结构可根据数据访问的特点分为线性结构和非线性结构。线性结构包括常见的链表、栈、队列等,非线性结构包括树、图等。数据结构种类繁多,本文将通过图解的方式对常用的数据结构进行理论上的介绍和讲解,以方便大家掌握常用数据结构的基本知识。
2020年5月27日
其他

盘点:这 7 道位运算面试题,哪一题你能做对?

点击关注上方“五分钟学算法”,设为“置顶或星标”,第一时间送达干货。转自小浩算法以下是目录,列出的全部内容都应该进行掌握:位运算基础位运算的奇淫技巧两数之和二的幂一的个数只出现一次的数字Ⅰ只出现一次的数字Ⅱ01PART位运算基础程序中的所有数在计算机内存中都是以二进制的形式储存的,位运算就是直接对整数在内存中的二进制位进行操作。首先我们还是简单列下常规的位运算:基本常用常考的,也就这么多。相信大家都知道,也就没什么好说的。02PART位运算的奇淫技巧上面的内容相对比较常规,但是一般面试我们遇到的,都不是常规内容。所以下面这些,是必须掌握的。下面的这八个技巧,基本cover了位运算90%的面试题:小浩概念位运算的奇淫技巧1、使用
2020年5月26日
其他

数组中最小的 k 个数:Top K 问题的两种经典解法

个数了。注意在动画中,我们并没有画出堆的内部结构,因为这部分内容并不重要。我们只需要知道堆每次会弹出最大的元素即可。在写代码的时候,我们使用的也是库函数中的优先队列数据结构,如
2020年5月22日
其他

土豆悖论

的水分。问:现在,这些土豆的总重量是多少?严格的计算可能需要纸和笔。在这里,为了测试大家对数字的直觉,我给出几个选项,大家可以试试,不经过计算,选择一个你认为最接近的正确答案是多少?A.
2020年5月20日
其他

真香!手把手教你配置VS Code远程开发工具,工作效率提升N倍

配置文件,用于登录远程机器,各项含义在图中有说明。SSH配置文件点击连接,登录远程服务器,需要输入几次远程服务器的密码(后面会教你怎么免密登录),输入确认即可。第一次连接会做VS
2020年5月18日
其他

墙裂推荐:GitHub 上这个开源项目可以让你在短短几分钟之内了解一门技术

扩展阅读”这三部分,不仅仅是可以让你快速了解一门编程语言或开发工具,扩展阅读对于你接下来的学习还有对应的参考,可以说是十分良心。我们拿动态规划来看:简介快速入门扩展阅读再悄悄看一眼我最喜欢的
2020年5月17日
其他

我写了一份操作系统词典送给你!

vector):中断向量位于中断向量表中。中断向量表(IVT)是将中断处理程序列表与中断向量表中的中断请求列表相关联的数据结构。中断向量表的每个条目(称为中断向量)都是中断处理程序的地址。61.
2020年5月16日
其他

太赞了,VSCode 上也能画流程图了!

是一个支持在线绘图的网站工具,因其界面简洁直观,功能丰富强大而受到不少用户喜爱。访问它的网站,你便能看到如下界面:http://draw.io由上图我们清楚可以看到,draw.io
2020年5月15日
其他

多亏了这几款软件,我才能坚持写博客这么多年!

点击关注上方“五分钟学算法”,设为“置顶或星标”,第一时间送达干货。写博客大致可以分为三步:写作前写作中写作后按照这三步介绍这个过程中我用到一些工具。写作前trello官网地址:https://trello.com/这是一款任务管理工具,类似于敏捷开发中看板,我们可以快速管理任务。日常工作我只要想到一个
2020年5月14日
其他

超级实用!让你效率倍增的 6 款浏览器插件

点击关注上方“五分钟学算法”,设为“置顶或星标”,第一时间送达干货。转自平凡与诗意浏览器插件具备内存占用小、使用频率高等特点,一款好用的浏览器插件能够极大的提高学习/办公效率,本文就来介绍6款让人不禁感叹相见恨晚的实用插件,文末有下载方式。前言浏览器插件是非常值得给予关注和喜爱的一类工具,它具备很多桌面应用和手机APP不具备的优势,•内存占用小•触手可及•使用频率高浏览器插件占据内存较大者,也不过几兆,大多数都是处于100k以内,有些甚至小于10k,所以,占用内存非常小。另外,无论是从事哪个行业,每天大多数工作时间都在和电脑打交道,办公、知识获取等等,我们随时随地都在用,可以说是触手可及。可想而知,如果有一款好用的浏览器插件,能够多么有助于提高办公和学习效率。本文就来介绍6款浏览器插件,虽然,它们不像tampermonkey、Postman、Dark
2020年5月13日
其他

从 LRU Cache 带你看面试的本质

LinkedList定义清楚数据结构的内容选好了数据结构之后,还需要定义清楚每个数据结构具体存储的是是什么,这两个数据结构是如何联系的,这才是核心问题。我们先想个场景,在搜索引擎里,你输入问题
2020年5月11日
其他

不要忽视算法最朴素的意义

点击关注上方“五分钟学算法”,设为“置顶或星标”,第一时间送达干货。转自是不是很酷去年我和一个本科同学吃饭,席间有番对话,我觉得挺有意思。我大一开始就搞算法竞赛。我的同学也是牛人,但他不玩儿算法竞赛。和大多数初学计算机的同学一样,他也怀疑算法的意义。这不是贬义,我也怀疑过,甚至现在还会写《学算法有什么用?没用》这样的文章。然后他说,你记不记得,我大一曾经问过你,硬件会越来越快,算法有什么意义?据他说,我大一给出的回答是:即使硬件越来越快,但算法仍然在帮助我们节省时间和空间,我们就可以使用这些节省的时间和空间做更多的事。这个回答他当时觉得很有说服力。我说,我完全忘了这件事儿了。但是现在看,大一的我肯定是还没读《算法导论》。这本算法界的圣经,在全球已经卖出了超过
2020年5月10日