
面试基础
文章平均质量分 94
算法和数据结构,专注于计算机软件专业相关的基础算法和数据结构知识,涵盖一些笔试面试中的常考题
提灯寻梦在南国
这个作者很懒,什么都没留下…
展开
-
一文简要概述Linux中常用知识点
前言学过操作系统的人都知道,windows系统是单用户多线程OS,Linux是多用户多线程OS。正式优于Linux系统的优越性,可以满足多个用户 多个任务并发执行,服务器都采用的是Linux系统。南国不才,截止到写这篇博客为止,在这短暂的大数据学习中也算是对CentOS系统从一无所知到慢慢了解,本篇博客开始,南国就根据自己之前的学习经历,记录一下在Linux系统中学习中的知识点。这里的博客内容 ...原创 2019-02-25 21:39:41 · 356 阅读 · 0 评论 -
数据库SQL实战全解
牛客网 数据库SQL实战查找最晚入职员工的所有信息select * from employeeswhere hire_date=(select max(hire_date) from employees);查找入职员工时间排名倒数第三的员工所有信息select * from employeeswhere hire_date=(select distinct hire_date fr...原创 2019-10-21 17:41:30 · 880 阅读 · 0 评论 -
数据库面试常用知识点补充
1.数据库存储过程的特点?MySQL数据库在5.0版本后开始支持存储过程,那么什么是存储过程呢?怎么创建、查看和删除存储过程呢?存储过程有什么优点?这些是本章节要探讨的问题:什么是存储过程:简单的说存储过程是为了完成某个数据库中的特定功能而编写的语句集,该语句集包括SQL语句(对数据的增删改查)、条件语句和循环语句等。创建存储过程:存储过程的创建非常简单,其创建结构为:CREATE P...转载 2019-03-09 22:43:04 · 545 阅读 · 0 评论 -
数据库系统原理简要总结
前言本篇博客作为数据库的首篇,南国主要介绍还是回顾一下在校学习数据库基础知识的一些理论知识。话不多说,干货送上~事务事务指的是满足如下四个特性【ACID特性】的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。原子性(Atomicity)事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。回滚可以用回滚日志来实现,回滚...转载 2019-02-26 16:21:52 · 1054 阅读 · 0 评论 -
操作系统面试知识大盘点
前言这篇文章南国根据自己的理解 写一篇在互联网公司面试中操作系统常问的知识点。本篇博客许多内容都是在前人的基础上进行的总结和概括,所以这篇博客 南国还是那他归纳为转载。干货很多,马上到~1.基本概念1.1 并行和并发这个概念在之前的博客中,我也讲过多次了。之类再做个简单的概述。并发是指宏观上在一段时间内能同时运行多个程序(按时间片交叉运行),而并行则指同一时刻能运行多个指令。并行需要硬...原创 2019-03-24 17:46:50 · 781 阅读 · 0 评论 -
计算机网络03——详述应用层(含HTTP协议)
前言这一篇博客 南国主要回顾应用层中的主要知识点,其中包括在面试中高频考点——HTTP协议。本文首先回顾一下除http协议之外的一些知识点,后面详述http协议。话不多说,干货送上~常见知识点1.文件传输协议FTPFTP 使用 TCP 进行连接,它需要两个连接来传送一个文件:控制连接:服务器打开端口号 21 等待客户端的连接,客户端主动* * 建立连接后,使用这个连接将客户端的命令传送...转载 2019-02-25 12:12:47 · 1226 阅读 · 0 评论 -
计算机网络面试02——详述传输层中的TCP和UDP 及java编程实现
前言紧接着上一篇博客计算机网络面试01——网络体系结构,这篇博客我们详细讲解传输层的两个重要协议 TCP和UDP, 快速上车~传输层网络层只把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。传输层提供了进程间的逻辑通信,传输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道。传输层包括两种协议:传输控制协议 TCP,...原创 2019-02-21 18:48:07 · 507 阅读 · 0 评论 -
计算机网络面试01——网络体系结构
前言从这篇文章开始,南国根据自己的体验和认识 写一个系列来描述计算机网络高频的知识考点。话不多说,干货送上~1.网络体系结构1.1 基本概念1.网络协议:是计算机网络和分布系统中互相通信的对等实体间交换信息时所必须遵守的规则的集合。2.语法(syntax):包括数据格式、编码及信号电平等。3.语义(semantics):包括用于协议和差错处理的控制信息。4.定时(timing):包...转载 2019-02-20 20:28:51 · 1497 阅读 · 0 评论 -
二分查找算法详解及对应leetcode习题详解 java实现
前言这篇博客,我就查找算法里面 时间复杂度是O(logn)的二分查找算法进行一个比较完善的剖析。话不多说,干货送上。1.基本知识点二分查找(Binary Search)算法,有的数据结构书里面也叫做折半查找算法。算法本身针对的是一个有序的数据集合,查找思想类似于分治思想。每次通过和区间中间元素的对比,将待查找的区间缩小为原来的一半,知道找到要查找的给定元素,或者区间缩小为0。以下是二分查找算...原创 2019-03-12 22:10:35 · 695 阅读 · 0 评论 -
贪心算法及相关leetcode习题详解 java代码实现
前言这篇博客,南国根据自己之前一段时间的学习和刷题,对贪心算法这一知识点做个小的归纳。这篇博客的内容首先是基础知识点,随后是具体的实战习题。话不多说,干货速来~基础知识点在计算机专业常见的极大算法里面,贪心算法算是比较好理解的了。一句话用来概括就是,贪心算法:在对问题求解时,总是做出当前看来最好的选择。这个问题的本质借助的就是贪心算法。考虑当前的决定就是最好的情况。贪心有许多非常经典的...原创 2019-03-10 18:12:14 · 1050 阅读 · 0 评论 -
字符串匹配2——多模式匹配(Trie树 AC自动机)
前言紧接着上一篇文章字符串匹配1,在上一篇文章里,我们主要总结归纳的是一个字符串和另一个字符串相比较。这篇文章,南国总结归纳的是两种常见的多模式匹配算法Trie树和AC自动机多模式匹配:一个主串和多个模式串中间的匹配问题。当然,聪明的你一定会问难道之前所学的单模式匹配的算法就不能用;爱解决问题吗? 答案是当然可以,但是用单模式的字符串算法解决这类问题总体的时间开销就会大很多,对于这类问题 我...原创 2019-01-20 18:13:13 · 1911 阅读 · 0 评论 -
字符串匹配1———单模式匹配(BF,RK,Sunday,BM,KMP)
前言字符串匹配(String Match)是计算机行业笔试面试常见的题型,无论是在大公司的笔试真题中,还是在面试中,都是大公司和面试官们津津乐道的话题。当然字符串匹配也具有一定的难度,特别是讲到后面一些比较复杂难懂的算法例如KMP算法,BM算法等,初学者可能一时之间没办法全部理解,多看几遍,总会孰能生巧的。字符串匹配的博客,理论讲解部分我分为两篇来写,分别是单模式字符串匹配和多模式字符串匹配...原创 2018-12-29 21:05:14 · 1238 阅读 · 0 评论 -
散列表应用-HahMap原理讲解
看那这篇博文之前,首先掌握散列表的一些相关知识散列表这篇博文很大程度上参考了HashMap实现原理及源码分析这篇博客,本文在此基础上关于jdk1.8的优化 做了一些简要叙述。在上一篇博文中我们提到过,当我们对某个元素进行哈希运算,得到一个存储地址,然后要进行插入的时候,发现已经被其他元素占用了,其实这就是所谓的哈希冲突。前面我们提到过,哈希函数的设计至关重要,好的哈希函数会尽可能地保证 计算...原创 2018-11-28 17:44:59 · 428 阅读 · 0 评论 -
散列表
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本篇博客是博主在进行复习总结时所写,中间有些内容会参考之前的看过的高质量博客进行讲述。如果错误,还望指出,共同进步~一、哈希表在讨论哈希表之前,我们先大概了解下...原创 2018-11-28 17:02:20 · 479 阅读 · 0 评论 -
排序2-时间复杂度为O(nlogn)的算法 归并排序 快排
上一篇博文排序1主要讲的是关于评定算法性能的一些指标,以及时间复杂为O(n2)的排序算法。这一篇博文我重点讲述世家复杂度为O(nlogn)的两个经典算法—归并排序 和快排关于这两个算法 网上的资料很多 在面试中也会经常会被问到(特别是快排),这里我结合自己的理解和总结,写的不好的地方 请多指教。归并排序(MergeSort)归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算...原创 2018-11-28 13:40:39 · 2446 阅读 · 0 评论 -
排序1-算法性能分析指标,冒泡,选择,插入排序算法(包括希尔排序)
排序算法在计算机软件方向属于必修的基础点。这篇开始我会紧握所能写下关于排序的总结。如何分析排序算法的性能?排序算法的执行效率1.时间复杂度分析,包括最好 最坏 平均时间复杂度分析。关于这一点详细内容我在之前的一篇博客中做过描述白话代码中的复杂度分析这里要说明一点的是以往我们分析时间复杂度 都是从宏观上进行分析,很少考虑到时间复杂度的系数、常数、低阶等因素。但是在实际开发中,我们排序的数据规...原创 2018-11-23 21:29:55 · 389 阅读 · 0 评论 -
浅谈递归和分治
递归递归有“去”和“来”的过程,去的过程叫“递”,回来的过程叫“归”。递归需要满足的三个条件:一个问题的解可以分解为多个子问题的解(子问题就是数据规模更小的问题) 该问题与分解之后的子问题,除了数据规模不同之外,求解思路完全一样 存在递归终止条件关于递归的逻辑思考,如果某个问题只有一个子问题(可理解为只有一条线路,我们可以可以很简单的画出“去”和“来”的过程,例如 f(1)=1;...原创 2018-10-13 20:40:46 · 518 阅读 · 0 评论 -
经典案例-链表操作的几大经典例子 leetcode 单链表反转 环的检测 求中间节点 有序链表合并等
这篇博文 主要总结链表在应用时的几个重要案例。学习之前,最好能够掌握链表相关的一些基础知识,以及链表中数据的插入、删除操作如何实现等等,这些网上资料很多,这里没有做过多介绍,不熟悉的同学可以看代码之前简单了解一下。1.单链表反转链表中环的检测求中间节点删除链表中第n个结点 删除链表中倒数第n个节点import java.util.Scanner;...原创 2018-10-10 15:25:00 · 378 阅读 · 0 评论 -
经典案例-回文序列 Java String(Char)存储实现 单链表存储实现
判断一串数字或者一个字符串是否回文,是一个编程的基本问题。这里我根据自己最近回顾数据结构相关知识,java语言实现两个经典案例。1.利用String存储字符串,判断是否为回文字符串。这个解决比较简单,i和j分别从String的前后进行遍历进行比较 一次得到是否为回文字符串。import java.util.Scanner;/** * 利用String解决回文字符串问题 * @...原创 2018-10-09 16:16:35 · 1001 阅读 · 0 评论 -
数组Array,数组array和Arraylist的对比 ,数组和链表的对比
数组(Array)是一种线性表数据结构。他用一组连续的内存空间,来存储一组具有相同类型的数据。线性表(Linear List)是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。除了数组(Array),链表(Linked List)、队列(Queue)、栈(Stack)也是线性表结构。与之相对立的概念是非线性表,比如二叉树、堆、图等。之所以叫非线性表,是因为数据之间并不...原创 2018-10-03 17:18:44 · 321 阅读 · 0 评论 -
白话代码中的复杂度分析-大O复杂度表示法 时间,空间复杂度分析 最好,最坏,平均复杂度
复杂度分析大O复杂度表示法算法的执行效率,粗略地讲,就是算法代码执行的时间。我们知道所有代码执行的时间T(n)与每行代码的执行次数n成正比。T(n)=O(f(n))T(n)表示代码执行的时间;n表示数据规模的大小;f(n)表示每行代码执行的次数总和。公式中的O表示代码的执行时间T(n)与f(n)表达式成正比。大 O 时间复杂度实际上并不具体表示代码真正的执行时间,而是表示代码执行...原创 2018-09-28 15:38:16 · 1200 阅读 · 0 评论