2 帅地

尚未进行身份认证

关注我的公众号『苦逼的码农』,一大波算法+计算机基础原创文章向你涌来。

等级
TA的排名 1k+

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

前几天有个朋友去面试字节跳动,面试官问了他一道链表相关的算法题,不过他一时之间没做出来,就来问了我一下,感觉这道题还不错,拿来讲一讲。题目这其实是一道变形的链表反转题,大致描述如下给定一个单链表的头节点head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并且从链表的尾部开始组起,头部剩余节点数量不够一组的不需要逆序。(不能使用队列或者栈作为辅助)例如:链表:1-&gt...

2019-11-14 10:42:37

【图解动态规划】用大量图片告诉你动态规划改如何优化?

前两天写一篇长达8000子的关于动态规划的文章告别动态规划,连刷40道动规算法题,我总结了动规的套路这篇文章更多讲解我平时做题的套路,不过由于篇幅过长,举了4个案例之后,没有讲解优化,今天这篇文章就来讲解下,对动态规划的优化如何下手,并且以前几天那篇文章的题作为例子直接讲优化,如果没看过的建议看一下(不看也行,我会直接给出题目以及没有优化前的代码):告别动态规划,连刷40道动规算法题,我...

2019-11-12 11:32:42

告别动态规划,DP连刷 40 道题,我总结出了这些套路!这应该是把动态规划讲的最后的文章了

动态规划难吗?说实话,我觉得很难,特别是对于初学者来说,我当时入门动态规划的时候,是看0-1背包问题,当时真的是一脸懵逼。后来,我遇到动态规划的题,看的懂答案,但就是自己不会做,不知道怎么下手。就像做递归的题,看的懂答案,但下不了手,关于递归的,我之前也写过一篇套路的文章,如果对递归不大懂的,强烈建议看一看:为什么你学不会递归,告别递归,谈谈我的经验对于动态规划,春招秋招时好多题都会用到动态...

2019-11-10 10:32:44

别找了,链表和二叉树相关面试题以及解答,我都给你们找好了

无论是在面试还是在平时的做题中,链表相关算法题以及二叉树相关算法题,可以说是考的非常非常多的。我在2019的秋招面试中,也是遇到了好几次。为此,我总结了9道最高频的链表相关面试题以及8道二叉树相关面试题,并且每道题都给出详细的解答,如果你把这些链表题都搞懂了,那么我相信你在链表方面,是没有太大问题的了,二叉树也是。为了大家方便定位,这里先给出大概的提纲:1、【链表问题】如何优雅着反转...

2019-11-11 13:24:23

漫话:什么是平衡(AVL)树?这应该是把AVL树讲的最好的文章了

这篇文章通过对话的形式,由浅入深带你读懂AVL树,看完让你保证理解AVL树的各种操作,如果觉得不错,别吝啬你的赞哦。1、若它的左子树不为空,则左子树上所有的节点值都小于它的根节点值。2、若它的右子树不为空,则右子树上所有的节点值均大于它的根节点值。3、它的左右子树也分别可以充当为二叉查找树。例如:例如,我现在想要查找数值为14的节点。由于二叉查找树的特性,我们可...

2019-11-09 20:46:00

【图解经典算法题】如果用一行代码解决约瑟夫环问题

约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用3种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。问题描述:编号为1-N的N个士兵围坐在一起形成一个圆圈,从编号为1的士兵开始依次报数(1,2,3…这样依次报),数到m的士兵会被杀死出列,之后的士兵再从1开始报数。直到最后剩下一士兵,求这个士兵的编号。1、方...

2019-11-09 19:53:34

【图解】以后有面试官问你跳跃表,你就把这篇文章扔给他

假如我们要用某种数据结构来维护一组有序的int型数据的集合,并且希望这个数据结构在插入、删除、查找等操作上能够尽可能着快速,那么,你会用什么样的数据结构呢?数组一种很简单的方法应该就是采用数组了,在查找方面,用数组存储的话,采用二分法可以在O(logn)的时间里找到指定的元素,不过数组在插入、删除这些操作中比较不友好,找到目标位置所需时间为O(logn),进行插入和删除这个动作所需的时...

2019-11-08 13:32:51

二分查找你确定真的会?生活中还能用来设计骗局?

期末考要来了,最近小秋正在从零开始复习算法相关知识…一道简单的算法题帅地:听说你最近正在临时饱佛教复习各种算法?小秋:对啊,算法太难了,把我头都搞大了,不过,感觉自己复习的好像还不错。帅地:那我找一道简单的题考考你?小秋:好啊,好啊,正好可以试试水。帅地:给你一个有序数组,例如然后我给出一个元素target,你返回它对应数组的下标,如果数组中不存在这个元素的话,则返回-1。例如...

2019-11-07 11:02:59

详解 leetcode 221题:最大正方形

学好算法没有捷径,最好的捷径就是多刷题,并且跳出舒适区,每道题都要寻找最优解,也不能老是做那些你自己比较擅长的题,不定期更新Leetcode的题,每道题都会给出多种解法以及最优解。题目描述在一个由0和1组成的二维矩阵内,找到只包含1的最大正方形,并返回其面积。示例输入:10100101111111110010输出:4...

2019-11-05 13:46:21

写了很久,这是一份最适合/贴切普通大众/科班/非科班的『学习路线』

说实话,对于学习路线这种文章我一般是不写的,大家看我的文章也知道,我是很少写建议别人怎么样怎么样的文章,更多的是,写自己的真实经历,然后供大家去参考,这样子,我内心也比较踏实,也不怕误导他人。但是,最近好多人问我学习路线,而且很多大一大二的,说自己很迷茫,看到我那篇普普通通,我的三年大学之后很受激励,觉得自己也能行,(是的,别太浪,你一定能行)希望我能给他个学习路线,说...

2019-11-03 18:13:21

强烈推荐这个优秀的技术公众号!!

大家好,我是帅地,写文章有一年了,这一年里写了150多篇原创文章,主要写「数据结构与算法」,「计算机基础」:包括数据库,计算机网络,Linux等。这这些计算机基础知识(数据结构与算法+计算机网络+操作系统)也是大厂面试中必须考察的点,特别是对于应届生,基本80%考这些基础知识,我秋招也是考这些基础知识拿到了腾讯的offer,具体可以看我一篇文章:历经两个月,我的秋招之路结束了!所以我写的文...

2019-11-01 20:20:46

大学四年,小白一路走来,分享一波我是如何学习、提高自己的算法

大一从一个小白一路走过来,也在leetcode刷了几年了题,也是有点经验,也走过很多坑,在此分享我的一波经验,请耐心看完一定会有所帮助。切勿盲目刷题:刷题前的知识积累说实话,想要提高自己的算法,我觉得就是脚踏实地着多动手去刷题,多刷题。但是,如果你是小白,也就是说,你连常见的数据结构,如链表、树以及常见的算法思想,如递归、枚举、动态规划这些都没学过,那么,我不建议你盲目疯狂着去刷题的。而...

2019-11-01 19:49:52

别翻了,程序员必学十大经典排序算法,看这篇就够了

说明十大排序算法可以说是每个程序员都必须得掌握的了,花了一天的时间把代码实现且整理了一下,为了方便大家学习,我把它整理成一篇文章,每种算法会有简单的算法思想描述,为了方便大家理解,我还找来了动图演示;这还不够,我还附上了对应的优质文章,看完不懂你来砍我,觉得不错就给我来个好看。术语铺垫有些人可能不知道什么是稳定排序、原地排序、时间复杂度、空间复杂度,我这里先简单解释一下:1、稳定排序:如果...

2019-10-31 12:15:27

为什么你学不会递归?告别递归,谈谈我的经验

可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了!可能也有一大部分人知道递归,也能看的懂递归,但在实际做题过程中,却不知道怎么使用,有时候还容易被递归给搞晕。也有好几个人来问我有没有快速掌握递归的捷径啊。说实话,哪来那么多捷径啊,不过,我还是想写一篇文章,谈谈我的一些经验,或许,能够给你带来一些帮助...

2019-10-27 16:01:40

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。一、电子书搜索对于大部分程序员...

2019-10-28 14:49:33

漫话:什么是 https ?这应该是全网把 https 讲的最好的一篇文章了

今天这篇文章,讲通过对话的形式,让你由浅入深着知道,为什么Https是安全的。一、对称加密一禅:在每次发送真实数据之前,服务器先生成一把密钥,然后先把密钥传输给客户端。之后服务器给客户端发送真实数据的时候,会用这把密钥对数据进行加密,客户端收到加密数据之后,用刚才收到的密钥进行解密。如图:当然,如果客户端要给服务器发送数据,也是采用这把密钥来加密,这里为了方便,我采用单方向...

2019-10-26 17:42:11

二分法题型小结

在刷题的过程中,二分法用的还是挺多的,有时候超时了往往是你没有用上二分法,今天我就来稍微总结下用的最多的三种二分法搜索。一、搜索和目标值相等的数这一类是最简单的,例如对于数组arr={1,2,5,6,9},要我们搜索返回目标数target=6,这个时候我们需要返回6的下标i=3。代码如下intbinarySearch(int[]arr,inttarget...

2019-10-26 13:59:00

这应该是把计算机网络五层模型讲的最好是文章了,看不懂你打我

帅地:用心写好每一篇文章!前言天各一方的两台计算机是如何通信的呢?在成千上万的计算机中,为什么一台计算机能够准确着寻找到另外一台计算机,并且把数据发送给它呢?可能很多人都听说过网络通信的5层模型,但是可能并不是很清楚为什么需要五层模型,五层模型负责的任务也有可能经常混淆。下面是网络通信的五层模型说实话,五层模型的具体内容还是极其复杂的,不过今天这篇文章,我将用最简洁的模式,通过网...

2019-10-25 12:49:08

小白成长以及学习轨迹:我的四年大学,写给正在读大学的你

前阵子有些读者问我大学期间的学习路线,说他自己现在有点迷茫。说实话,对于学习路线这种文章,一抓一大堆,我也不大喜欢去建议别人究竟该怎么学习,学习顺序之类的。不过对于大学,很多人进入大学的时候,可能都是同一个起点,大学四年过后,却是完全不同的人生轨迹。正好我也想记录下自己从高中进入大学这几年的学习与变化,我的大学经历,可以说是非常普通,没有参加任何竞赛,也没拿过奖学金(当然,国家助学金得拿,哈哈)。...

2019-10-24 20:41:22

大学四年,看过的优质书籍推荐

有时有些读者问我,数据结构与算法该怎么学?有书籍推荐的吗?Java初学者该怎么学等等。今天我就给大家介绍一些我这几年看过的一些自认为优秀的书籍,由于我看的大部分书籍可以说都是通用的,所以如果你有时间的话,还是挺建议看看的,特别是学生。而且,我还给大家准备好了电子书,文末即可获取,感觉自己太良心!数据结构与算法数据结构与算法相关的书籍应该是我看的最多的一种数据吧,从大一到现在,从未间断过,下...

2019-10-22 16:24:30

查看更多

勋章 我的勋章
  • 新人勋章
    新人勋章
    用户发布第一条Blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。