随笔分类 - 数据结构与算法分析
摘要:题目:有n种硬币,面值分别为V1,V2,...Vn,每种都有无限多。给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值和最大值! 如果我们有面值为1元、3元和5元的硬币若干枚,如何用最少的硬币凑够11元? (表面上这道题可以用贪心算法,但贪心算法无法保证可以求出 解,比如
阅读全文
摘要:最长公共子序列(LCS)问题 下面通过一个具体的例子来学习动态规划方法 —— 最长公共子序列问题。 最长公共子串(Longest Common Substring)与最长公共子序列(Longest Common Subsequence)的区别: 子串要求在原字符串中是连续的,而子序列则只需保持相对顺
阅读全文
摘要:在Java,尽管有类库Arrays.sort(arr)可以让我们对数组进行排序,当我们参加笔试时,要对一些经典排序算法进行书写,这就要求我们能够写出一些基本的排序算法;本文想讲下希尔排序,但在希尔排序前,我们先谈谈插入排序。 插入排序 上图勾勒出了直接插入排序的步骤,以下我们直接出代码。 从该代码,
阅读全文
摘要:class Node { private int data; // 其他数据 private int otherData; private Node left; private Node right; public Node(int data, int otherData) { this.data = data; this.otherData = otherData; }...
阅读全文
摘要:栈:先进后出 队列:先进先出 循环队列:当我们一直使用对头front,对尾end进行添加,删除元素时,会发现数组很容易满,这时,我们将对头front,对尾end再指向初始化位置。 优先级队列 链表
阅读全文
摘要:/** * 表达式求值 * * @author sun * */ public class Expression { public static void main(String[] args) { // 定义优先级 Map map = new HashMap(); map.put('(', 0); map.pu...
阅读全文
摘要:有关概念: 最长上升子序列(LIS,Longest Increasing Subsequence),在一个序列中最长的单调递增的子序列 例子: 输入: 2 1 5 3 6 4 8 9 7 输出: 5 (1)第一种解法: fi表示以第i个数结尾的LIS长度 对于序列中的一个数i,在i前面枚举数j,j满
阅读全文
摘要:一、递归是指直接或间接地调用自身。 二、递归的注意事项; A:要有出口,否则就是死递归 B:次数不能过多,否则内存溢出 C:构造方法不能递归使用 三、举例子 递归求阶乘 在jvm篇中,我们已经知道jvm有五大区域,其中栈、堆、方法区是我们必须知道干嘛的,因为程序的运行跟着息息相关。 方法区:保存JV
阅读全文
摘要:转载来自:http://www.cnblogs.com/kubixuesheng/p/4378266.html 博主写的很不错,很详细~ 树的定义和基本术语 树(Tree)是n(n>=0)个结点的有限集T,T为空时称为空树,否则它满足如下两个条件: (1)有且仅有一个特定的称为根(Root)的结点;
阅读全文
浙公网安备 33010602011771号