赫夫曼树在基础数据结构里也是一个难点,所以趁在家我把我课下和张同学写的报告提一些出来,稍微详细的写一下。
基本概念:
赫夫曼树又称为最优树,是一类带权路径长度最短的树。它具有n个叶子结点(每个结点的权值为wi) 的二叉树不止一棵,但在所有的这些二叉树中,必定存在一棵WPL值最小的树,称这棵树为H
拦截导弹
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于等于前一发的高度。某
目录
1 问题描述
2 解决方案
2.1 递归法
2.2 递推法
1 问题描述
问题描述
每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天
1.题目描述:
2.解题思路:
本题是要合并两个已经有序的单链表,思路很简单,有两种方法:非递归和递归。
3.Java代码:
(1)非递归:
为方便操作,定义一个辅助的头节点,然后比较原来两个链表的头节点,将小的那一个加入到合并链表,最后,当其中一个链表为空时,直接将另一个链表接入到合并链
强化学习读书笔记 - 04 - 动态规划
学习笔记:Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto c 2014, 2015, 2016
数学符号看不懂的,先看看这里:
强化学习读书笔记 -
自测-3 数组元素循环右移问题
一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M≥0)个位置,即将A中的数据由(A0A1···AN-1)变换为(AN-M···AN-1A0A1⋯AN-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考
1.题目描述:
2.解题思路:
题意:将K个已经排序的链表合并成一个排序的链表,分析并描述所用算法的复杂度。
方法一:基于“二分”思想的归并排序。本文用非递归和递归两种方法实现。
(1)非递归:归并排序”(Merging Sort):将两个或两个以上的有序表组合成一个新的有序表,无论是
静态查找表---静态存储
动态查找表----树、散列表(唯一仅适用于集合的存储结构)
查找: 内部查找-----比较次数作为衡量标准
外部---记录---访问外存次数
无序表:
顺序查找(O(N)) 第0个元素空出来作为哨岗,减少比较次数(避免比较下标是否合法)
1 da
目录
1 问题描述
2 解决方案
1 问题描述
问题描述
题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大。因为乘号和加号一共就是N-1个了
1.题目描述:
2.解题思路:
题意:两个由整数构成的有序数组nums1和nums2,合并nums2到nums1,使之成为一个有序数组。注意,假设数组nums1有足够的空间存储nums1和nums2的所有元素(>=m+n)。
思路很简单,直接上代码。
3.Java代码:
(1)普通
强化学习读书笔记 - 03 - 有限马尔科夫决策过程
学习笔记:Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto c 2014, 2015, 2016
代理-环境接口(The agent-en
目录
1 问题描述
2 解决方案
1 问题描述
问题描述
任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。 将这种2进制表示写成2的次幂的和
本篇是上一篇赫夫曼树构建与编码的后续,稍微详细讲一下解码的算法。
Huffman解码算法流程:
1.定义指针p指向赫夫曼树结点,实际是记录结点数组的下标;
2.定义指针i指向编码串,定义ch逐个取编码串的字符;
3.初始化:读入编码串,设置p指向根结点,i为0;
4.执行以下循环:
a)
目录
1 问题描述
2 解决方案
1 问题描述
问题描述
Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“
目录
1 问题描述
2 解决方案
1 问题描述
问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个
目录
1 问题描述
2 解决方案
1 问题描述
问题描述
给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。
总的说来,要直接默写出快速排序
最少步数
时间限制:3000 ms | 内存限制:65535 KB
难度:4
描述
这有一个迷宫,有0~8行和0~8列:
1,1,1,1,1,1,1,1,1
1,0,0,1,0,0,1,0,1
1,0,0,1,1,0,
kmeans算法思想:
1.从数据集中随机选取k个初始点作为质心。
2.遍历数据集中所有的点,求出每个点到每个质心的距离,找出距离改点最近的质心,并改变此点类型为此质点的类型。
3.重新为每个类别更新其质心。
4.重复2,3,步直到最后两次质心位置相同退出while循环。
补充用python实现的
knn
kmeans
1.knn是分类算法
2.监督学习
3.给它的数据是有label的,是已经事先分类好了的,
类别数不变。
1.kmeans是聚类算法
2.非监督学习
3.给它的数据是没有label,是没有事先分类好的,
以“物以类聚”原理进行聚集成簇。
没有明显的前期训练过程。
有明显