姜皓的博客

胸藏文墨怀若谷,腹有诗书气自华

突破算法面试(01)——什么是优秀的算法面试

什么是优秀的算法面试 一、简述算法面试 对一组数据进行排序 考虑要点: ·有没有可能包含有大量重复的元素? ·是否大部分数据距离它正确的位置很近?是否近乎有序? ·是否数据的取值范围非常有限?比如对学生成绩排序。 ·是否需要稳定排序? ·是否是使用链表存储的? ·数据的大小是否可以装载在内存...

2019-01-11 17:44:02

阅读数 42

评论数 0

玩转数据结构(21)-- 哈希表

哈希表 一、哈希表基础 从习题入手【题目链接】 思路:可以不使用树结构来实现映射,可以直接设置包含 26个 元素的数组,对数组中每一位表示某一个字符对应的频率即可;索引为 0 的位置表示 a ,索引为 1 的位置表示 b ,以此类推。 哈希表定义:把所关心的键通过哈希函数转换为索引,然...

2018-10-01 16:27:46

阅读数 88

评论数 0

玩转数据结构(20)-- 红黑树

红黑树 史上最清晰的红黑树讲解(上) 史上最清晰的红黑树讲解(下) 一、概述 图示: 红黑树是二分搜索树,并在二分搜索树的基础上添加一些性质确保其不会退化为链表,保证其是平衡二叉树 《算法导论》中的具体规定: 1.每个节点要么是红色,要么是黑色; 2.根节点是黑色的 3.每个...

2018-10-01 11:43:14

阅读数 104

评论数 0

玩转数据结构(19)-- AVL

AVL 在二分搜索树中,如果是顺序添加进搜索树的话,则会排成一列,成为链表,从而极大的降低二分搜索树的执行效率;         解决这个问题:在二分搜索树的基础上添加一定的机制,使得二分搜索树能够维持平衡二叉树的性质; AVL : 最经典的平衡二叉树;(发明人:Adelson-Velsk...

2018-09-29 17:12:02

阅读数 50

评论数 0

玩转数据结构(18)-- 并查集

并查集(Union Find) 一、概述 一个很有意思的并查集详解 由孩子节点指向父亲节点的树结构,解决连接问题,如图来判断两个点之间是否是连接的 并查集:可以快速判断网络中节点间的连接状态【网络:抽象概念,用户之间形成的网络】可以高效回答连接问题的数据结构 对于一组数据,主要支持两...

2018-09-28 15:47:18

阅读数 90

评论数 0

玩转数据结构(17)-- 字典树

字典树(Tire)[前缀树] 一、概述 【多叉树】 专门处理字符串,专门为 字典(一个词条和一个示意相对应)设计的数据结构;  在 字典  中,有 n 个词条,使用 映射 方式查找,本质是使用 树结构 ,查询的时间复杂度是 O(log n); 使用 字典树(Tire)  的数据结构时,查询...

2018-09-28 11:38:29

阅读数 87

评论数 0

玩转数据结构(16)-- 线段树

线段树【区间树】(Segment Tree) 一、为何使用线段树 对于有一类问题,我们关心的是线段(或区间) 经典线段树问题:区间染色 有一面墙,长度为 n ,每次选择一段墙进行染色 染色过程: 1.     4-9 黄色  2.    7-15 绿色 3.    1-5 ...

2018-09-27 22:37:18

阅读数 52

评论数 0

Java面试--google 笔试题

google 笔试题 Beautiful Numbers 分析: 代码实现: BeautifulNumber.java package interview.google; import java.io.BufferedReader; import java.io.In...

2018-09-27 20:55:19

阅读数 111

评论数 0

Java面试--容易忽略的知识点

容易忽略的知识点 并行计算【详解】 步骤: 1.将数据拆分到每个节点上【如何拆分:要保证每个节点都能独立计算;1.将大的数据根据尺寸进行拆分 2.根据用户首字母进行拆分】 2.每个几点并行的计算出结果【每个节点算出什么样的结果,这时得到中间结果】 3.将结果汇总 例【外部排序】  如何...

2018-09-27 11:03:33

阅读数 48

评论数 0

Java面试--设计模式

设计模式 单例模式【Singleton】 定义:确保全局最多只有一个对象 适用:构建缓慢的对象;需要统一管理的资源 优点:1.减少内存的占用            2.单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。            3.因为类控制...

2018-09-26 21:12:59

阅读数 73

评论数 0

Java面试--面向对象

面向对象 一、类与对象 类的成员变量---对象状态 类的成员函数---对象行为 类的静态变量 类的静态函数 1.没有 this 引用,静态变量全局唯一一份 2.普通函数引用静态变量、函数---可以 3.对象上引用静态变量、函数---可以,但编译器会警告 4.静态函数引...

2018-09-26 20:09:44

阅读数 32

评论数 0

Java面试--二叉树的遍历

二叉树的遍历 一、前序遍历 遍历顺序:先前序遍历树根,再前序遍历左子树,再前序遍历右子树 先遍历树根(A)--再遍历左子树(B)--再遍历左子树(D)--(D没有左子树了)再遍历右子树(E)--再遍历左子树(G)--(A没有左子树了)再遍历右子树(C)--(C没有左子树了)再遍历右子树(...

2018-09-26 10:51:19

阅读数 72

评论数 0

Java面试--面试中的数据结构问题

面试中的数据结构问题 数据结构分类: 列表 型---1.数组  2.链表  3.队列  4.栈 数组【详解】 开辟一片连续的空间,将元素依次放入其中; 数组的好处:可以进行随机访问,只需要一个下标就可以访问到该元素;但插入和删除会比较耗费时间,插入和删除操作都需要将之后的元素进行整体的移...

2018-09-24 10:58:18

阅读数 415

评论数 0

Java面试--常见的边界控制问题

常见的边界控制问题 二分查找 例 【二分查找】  在有序数组中查找元素 k ,返回 k 所在的下标 在数组 [1,2,10,15,100] 中去寻找 15 ,15 的下标是 3 ; 二分查找思路: 代码实现:BinarySearch.java package intervie...

2018-09-24 09:48:40

阅读数 51

评论数 0

Java面试--面试中常考的循环问题

面试中常考的循环问题 一、循环控制 循环不变式(loop invariant) 循环书写方法 1.定义循环不变式,并在循环体每次结束后保持循环不变式 2.先一般、后特殊 3.每次 必须  向前推进循环不变式中涉及的变量值 4.每次推进的规模必须为 1   例 1.链表反转 ...

2018-09-24 09:19:07

阅读数 66

评论数 0

Java面试--Java常考的设计模式

Java常考的设计模式[转载自博客] 设计模式主要指的就是 GoF 的23种设计模式,其分为三个方面:创建型模式、结构型模式、行为型模式。下面就罗列出每个方面常考的设计模式。 1、创建型模式: 单例模式(文章链接:浅析Java设计模式——单例模式(1)/ 单例模式(2)) 工厂模式(文章链...

2018-09-19 23:14:42

阅读数 67

评论数 0

Java面试--面试中常考的递归问题

面试中常考的递归问题 一、链表创建 定义函数 CreateLinkedList,让其返回值为 Node(链表头),每次必须缩小问题规模且必须为1;则将 1 拆掉,把 2、3、4、5 添入到 CreateLinkedList,再把 1 和 2、3、4、5 连接起来即可; 如何接:...

2018-09-19 23:10:02

阅读数 89

评论数 0

Java面试--堆和栈的概念和区别

堆和栈的概念和区别【转载自博客】 在说堆和栈之前,我们先说一下JVM(虚拟机)内存的划分:       Java程序在运行时都要开辟空间,任何软件在运行时都要在内存中开辟空间,Java虚拟机运行时也是要开辟空间的。JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分,...

2018-09-19 20:30:33

阅读数 336

评论数 1

Java面试--数据库(事物/事物隔离级别/乐观锁与悲观锁)

数据库 一、关系型数据库 基于关系代数理论; 缺点:表结构不直观,实现复杂,速度慢 优点:健壮性高,社区庞大 二、事物 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个...

2018-09-18 23:10:48

阅读数 42

评论数 0

Java面试--网络基础(OSI模型/TCP与UDP/滑动窗口协议)

网络基础 一、OSI七层模型及各层作用 OSI是Open System Interconnect的缩写,意为开放式系统互联。 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Teln...

2018-09-18 17:26:16

阅读数 99

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭