随笔分类 - 算法
摘要:描述:一个整数数组,长度为n,将其分为m份,使各份的和相等,求m的最大值case:比如{3,2,4,3,6} 可以分成 {3,2,4,3,6} m=1; {3,6}{2,4,3} m=2 {3,3}{2,4}{6} m=3 所以m的最大值为3思路分析: 隐性要求:total%m==0,且m的取值范围
阅读全文
摘要:关于二叉树 二叉树是一种在面试中也会涉及的到数据结构。 一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根结点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。二叉树的物种不同的形态如下: 二叉树的结构定义有三个部分组成,分别是值域val和指向左右孩子的指针*left和*right
阅读全文
摘要:关于矩形覆盖面试题 之前已经在上一篇分治法面试题(一):矩形覆盖一文中给出了该问题的递归解法。但是上面的分析可以看出效率不高,主要是存在大量重复元素的计算。那么如何避免大量重复元素的计算呢?这里将给出几种解决方案。 关于动态规划 动态规划的思想与我们上篇探讨的分治法相似,也是通过组合子问题的解从而得
阅读全文
摘要:关于分治法 分治法,分而治之。就是将原问题划分为n个规模较小,结构与原问题类似的小问题进行处理,递归地解决这些问题,然后再合并求解的过程。 分治法在解决的流程上分为三个步骤: 1.分解:将原问题划分为n个规模较小,结构与原问题类似的小问题。 2.解决:若子问题规模小,足以处理,则求解,否则继续递归处
阅读全文
摘要:关于栈和队列的考察 栈和队列都是比较常用的数据结构。栈的应用非常的广泛,比如说,递归函数的实现就是借助于栈保存相关的数据。操作系统中每个线程也会使用栈来保存函数调用涉及到的一些参数和其他变量等。栈最大的一个特点就是先进后出(FILO—First-In/Last-Out)。 队列和栈不同的是,队列是一
阅读全文
摘要:关于链表的考察 链表是面试里面经常涉及到的考点,因为链表的结构相比于Hashmap、Hashtable、Concurrenthashmap或者图等数据结构简单许多,对于后者更多面试的侧重点在于其底层实现。比如Hashmap中Entry<k,v>等操作、如何扩容、容量的设定等。链表的考察更侧重于代码的
阅读全文