版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/details/100110089 一.广度优先搜索介绍 广度优先搜索算法(Breadth First Search),又称为"宽度优先搜索"或"横向优先搜索",简称BFS. 它的思想是:从图中某顶点v出发,在访问了v之后依次访问v的各个未曾访问过的邻接点,然后分别从这些邻…
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/details/100110115 一.最短路径问题 [google笔试题]一个环形公路,给出相邻两点的距离(一个数组),求任意两点的最短距离,要求空间复杂度不超过O(N). 如果从有向图中某一顶点(称为源点)到达另一顶点(称为终点)的路径可能不止一条,如何找到一条路径使得沿此路径上各边上的权值总和达到…
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/details/100110122 一.图的生成树和最小生成树 生成树(SpanningTree):如果一个图的子图是一个包含图所有节点的树,那这个子图就称为生成树.图的生成树不惟一.从不同的顶点出发进行遍历,可以得到不同的生成树.专业的说法:在一个无向连通图中,如果存在一个连通子图包含原图中所有的结点…
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/details/100110102 一.深度优先搜索介绍 图的深度优先搜索(Depth First Search),和树的先序遍历比较类似. 它的思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和v有路…
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/details/99772243 一.什么是递归 递归是一种数学上分而自治的思想. 递归将大型复杂问题转化为与原问题相同但规模较小 的问题进行处理 递归需要有边界条件,当边界条件不满足时,递归继续进行:当边界条件满足时,递归停止 [百度百科]程序调用自身的编程技巧称为递归( recursion).递归做…
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/details/100107832 前文讲了二叉树和多路树,二叉树的性能很好,像AVL树.红黑树都是很优秀的结构,那么在数据库索引中,并没有采用二叉树这种结构,这是为什么呢?因为,有性能更好的树来做搜索!目前大部分数据库系统及文件系统都采用B-Tree或其变种B+Tree作为索引结构. 一.B-树和B+…
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/details/100065668 前面给大家讲了哈希表(散列)这种数据结构,那么使用哈希表来解决实际问题,那就是Hash算法了,我们一起来看看. 一.Hash算法的概念 Hash算法(Hash Algorithm),简称散列算法,也成哈希算法(英译),是将一个大文件映射成一个小串字符.与指纹一样,就是…
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/details/100065647 一.KMP算法定义 [百度百科]KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法).KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次…
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/details/99999354 上一节我们讲了动态规划,我们也知道,动态规划对于子问题重叠的情况特别有效,因为它将子问题的解保存在存储空间中,当需要某个子问题的解时,直接取值即可,从而避免重复计算! 这一节我们来解决一个问题,就是最长公共子序列. 一.啥叫最长公共子序列? [百度百科]LCS是Long…
给c++程序员的一份礼物——常用工具集 [声明]如需复制.传播,请附上本声明,谢谢.原文出处:http://morningspace.51.net/,moyingzz@etang.com 所谓"工欲善其事,必先利其器",从程序员的角度来讲,好工具的使用总会给人带来事半功倍的效果.面对众多工具/软件,我们应该如何取舍呢.前不久,笔者在csdn的c++论坛发了一篇贴文,以期能征求大家的广泛意见,得到了不错的反响.本文在对该贴进行整理的基础上,又做了一些补充.在这里要特别感谢网友:Danie…
好程序员web前端分享18个用CSS制作出来的东西,与流行的看法相反,CSS不仅仅是用来提供一个WEB页面的基本风格,以使它看起来更有吸引力.还有很多其他的事情,CSS也可以做的很好.由于它创建动画和交互的能力,CSS集合HTML以及JavaScript给WEB开发者提供了尝试不同方法的机会. 浏览器就像一个空的画布,WEB开发者可以在这里尽情的发挥.下面是18个人们用CSS创建的又酷又有创造性的东西的例子,从原始字符到有趣的动画,有很多激励你自己将时间花费在CSS上. 1.TheSimpson…
好程序员web前端分享css常用属性缩写,使用缩写可以帮助减少你CSS文件的大小,更加容易阅读.css缩写的主要规则如下: 颜色 16进制的色彩值,如果每两位的值相同,可以缩写一半,例如: #000000可以缩写为#000;#336699可以缩写为#369; 盒尺寸 通常有下面四种书写方法: property:value1; 表示所有边都是一个值value1; property:value1 value2; 表示top和bottom的值是value1,right和left的值是value2 pr…
算法和数据结构(鉴于二者的关联,以下统称算法),对于程序员的重要性一直是个具有争议性的话题.有一些程序员内心对算法有着天然的排斥,面试当中一旦考察算法知识,会被不少程序员吐槽,但有部分公司又一直在坚持这种做法.我且以一个iOS程序员的视角,谈下自己粗浅的看法. 不懂算法并不妨碍成为一名iOS程序员,大家关心的是:掌握算法知识和成为一名优秀程序员之间的关系.在我看来,二者是非充分但必要的联系.至少适度的掌握算法知识是成为一名优秀程序员的必要前提,当然也包括iOS程序员.其重要性简单来说可以归为以下…
这本书是讲解Go语言程序员面试笔试真题的书籍,讲的还不错,值得一看. 计算机技术博大精深,日新月异………………大神们疯狂的更新着技术,(我就更新,不服打我呀)虽然换汤不换药,又有几个人能精通基础,再延伸.我等凡人复制粘贴吧 面试笔试经验技巧篇 如何巧妙地回答面试官的问题 如何回答技术性的问题 如何回答非技术性问题 如何回答快速估算类问题 如何回答算法设计问题 如何解决求职中的时间冲突问题 如果面试问题曾经遇见过是否要告知面试官 被企业拒绝后是否可以再申请 如何应对自己不会回答的问题 如何面对面试…
对于 Java 程序员来说,使用 IDEA 集成环境是最称手的.优点不多讲,用过的人都知道.IDEA 虽好,但为了充分利用 IDEA 的优势,我分享一下我常用快捷键.插件和设置. 常用快捷键 Ctrl + Alt + Shift + N Command + Option + Shift + N,Navigate Symbol 直接在按键后的弹出窗口中搜索 Controller 的 @RequestMapping 的名称.相比先用 Ctrl + Shift + N 搜索 Controller 名称…
链表作为最基本的数据结构,它不仅仅在实际应用中有着非常重要的作用,而且也是程序员面试笔试必考的内容. 详情请Google吧. 1.如何实现链表的逆序 就地逆序 package main import ( "fmt" _ "fmt" _ "github.com/ha666/golibs" ."github.com/isdamir/gotype" //引入定义的数据结构 ) //带头结点的逆序 func Reverse(node…
这篇文章主要介绍了Java如何实现八个常用的排序算法:插入排序.冒泡排序.选择排序.希尔排序 .快速排序.归并排序.堆排序和LST基数排序,分享给大家一起学习. 分类1)插入排序(直接插入排序.希尔排序)2)交换排序(冒泡排序.快速排序)3)选择排序(直接选择排序.堆排序)4)归并排序5)分配排序(基数排序) 所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序. 先来看看8种排序之间的关系: 1.直接插入排序 (1)基本思想:在要排序的一…
HTML即超文本标记语言,是目前应用最为广泛的语言之一,是组成一个网页的主要语言.在现今这个HTML5华丽丽地占领了整个互联网的时候,如果想要通过网页抓住浏览者的眼球光靠因循守旧是不行的,程序猿们需要掌握一些必须知道的HTML常用代码,因为只有熟悉掌握了常用的HTML代码,程序猿们在编写网页的时候才可以做到流畅美观,用细腻的思维和创意的细节效果打动并留住网页浏览者. html+css代码 文本设置1.font-size: 字号大小 2.font-style: 字体格式3.font-weight:…
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/details/99690222 一.平衡二叉树的定义 对一棵查找树(search tree)进行查询/新增/删除 等动作, 所花的时间与树的高度h 成比例, 并不与树的容量 n 成比例.如果可以让树维持矮矮胖胖的好身材, 也就是让h维持在O(lg n)左右, 完成上述工作就很省时间.能够一直维持好身材…
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/details/99699744 一.什么是B-树(B-Tree) B树是平衡多叉树,可以看做是对2-3树的一种扩展,即允许每个节点有最多M个子节点,其中M为B树的阶.每个节点的多个key按升序排列,且有 节点所含key值的个数 = 节点的子树的个数 – 1,就意味着某节点的每个子树所在的位置是由该节点…
网络 找出某程序(tomcat)的进程 ps -ef|grep tomcat     找出后如果要关闭 kill -9 pid统计某程序(tomcat)连接数 ps -ef|grep tomcat|wc -l查看tomcat日志文件包含某关键字的记录   grep '关键字' -C5 xxxxx.log     -C5表示包括上面5行和下面5行一起打印出来查看文件 vi或vim  /关键字 查找 列出所有 tcp 端口 netstat -at只列出所有监听 tcp 端口 netstat -lt找…
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/details/99700170 一.有了B树,为啥还有B+.B*树? B+树 B+树是B-树的变体,也是一种多路搜索树: 其定义基本与B-树同,除了: 非叶子结点的子树指针与关键字个数相同: 非叶子结点的子树指针P[i],指向关键字值属于[K[i], K[i+1])的子树(B-树是开区间): 为所有叶…
我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了.我想列下我能想到的一个Java程序员会用到的常用工具. 一.编码工具 1.IDE:Eclipse或者IDEA,熟悉尽可能多的快捷键,<Eclipse常见快捷键列表>2.插件: (1) Findbugs,在release之前进行一次静态代码检查是必须的(2) Clover,关心你的单元测试覆盖率(3) Checkstyle 代码风格检查 3.构建和部署工具:ant或者maven…
突破程序员基本功(16课) 数组 静态语言: 在编译的时候就能确定数据类型的语言,大多静态语言要求在使用变量之前必须声明数据类型(少数具有强推导能力的现代语言不用) 动态语言: 在程序运行时确定数据类型的语言,变量使用之前不需要声明数据类型 java是静态语言,在使用之前需要声明变量类型. //声明一个可存放数据类型为String,长度为5的数组 String[] arr = new String[5]; 数组的初始化 数组初始化有两种方式 静态初始化: 初始化时,程序员显示指定数组每个元素的初…
引言 首先声明,不要再问LZ谁是林萧,林萧就是某著名程序员小说的主角名字. 写这篇文章的目的其实很简单,算是对之前LZ一篇文章的补充和完善. 之前LZ写过一篇<回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议>,那篇文章LZ主要介绍了如何应对社招面试,以及如何进行Java学习. 文章的反响还不错,不少猿友都感叹,"如果早看到这篇文章,说不定我已经成大神了." 但是LZ只能很遗憾的告诉你,LZ那篇文章并不能让你成为大神,只能让你成为一个比大部分人优秀…
作者:匿名用户链接:https://www.zhihu.com/question/39890405/answer/83676977来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:匿名用户链接:https://www.zhihu.com/question/39890405/answer/83676977来源:知乎 ---------------------------------------------------------------我是分割线------…
程序员的数学1 2012.pdf 2012版 程序员的数学2 概率统计 ,平冈和幸,(日)堀玄著 ,P4006 2015.pdf 2015版 程序员的数学3-线性代数 2016.pdf 2016版 如果数学不好,是否可以成为一名程序员呢?答案是肯定的. 本书最适合:数学糟糕但又想学习编程的你., 没有晦涩的公式,只有好玩的数学题., 帮你掌握编程所需的“数学思维”., 日文版已重印14次!, 编程的基础是计算机科学,而计算机科学的基础是数学.因此,学习数学有助于巩固编程的基础,写出更健壮的程序.…
本文摘自左潇龙博客,原文出处:http://www.cnblogs.com/zuoxiaolong/p/life54.html 引言 首先声明,不要再问LZ谁是林萧,林萧就是某著名程序员小说的主角名字. 写这篇文章的目的其实很简单,算是对之前LZ一篇文章的补充和完善. 之前LZ写过一篇<回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议>,那篇文章LZ主要介绍了如何应对社招面试,以及如何进行Java学习. 文章的反响还不错,不少猿友都感叹,"如果早看到这篇文章…
要达到月薪3万,一般要在北上广深杭知名的互联网公司,同时要在某一个知识领域达到专家级别,而不是简单的掌握SSH那么简单.虽然对部分人有点难,但目标还是要有的,万一实现呢? 首先三万的月薪在BAT实在太普遍了,一般是高级工程师和资深工程师的职位,在阿里是p6~p7左右,在百度是t5左右,腾讯是t2-3左右,京东是t3-1,美团是p6左右,其他的我不了解.这种级别是他们主要码农层级,加班多,能解决大部分问题,但对系统的整体架构能力和深入分析瓶颈的能力还需要培养. 其次掌握的技能树主要有三个方面: 第…
    首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他技术 - 导航条 - 首页 最新文章 IT 职场 前端 - JavaScript - HTML5 - CSS 后端 - Python - Java - C/C++ - PHP - .NET - Ruby - Go 移动端 - Android - iOS 数据库 运维 - Linux - UNIX 其他技术 - Git - 机器学习 - 算法 - 测试 - 信息安全 - Vim     伯乐在线 > 首页 > 所有文章 &…