前言
本文的所有代码用C++实现,若在代码段里发现未定义的行为,请到最后的完整代码里寻找该行为含义。若有错误敬请在评论区指正。谢谢您的阅读。
出发点
普通高精度每一位存一个数字,可是对于一个int型的存储空间,可存的最大数值为2147483647,只存一个数字是极大的空间浪费。因此,为了在节约空间的
一、基于内容推荐
基于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机 器学习的方法从关于内容的特征描述的事例中得到用户的兴趣资料。在基于内容的推荐系统中,项目或对
这几天一直在宿舍跑PY模型,学校的ACM寒假集训我也没去成,来学校的时候已经18号了,突然加进去也就上一天然后排位赛了,没学什么就去打怕是要被虐成渣,今天开学前一天,看到最后有一场大的排位赛,就上去试了一下,果然被虐成渣,十二道题目在有限时间内就做了四道,还有一道疯狂的WA,拿出两道
算法分析
在编写代码的某一时刻,自然会产生一段代码比另一段代码运行得更快的思想。算法分析的任务便是尽可能多地发现算法的性能特征,以便让程序员利用这些特征做出正确的选择。在分析之前,首先要了解影响算法性能的因素并排除一些混淆视听的干扰项。
数据对性能的影响
也许我们都曾经遇到过这种情况,在某一
这是悦乐书的第257次更新,第270篇原创
01 看题和准备
今天介绍的是LeetCode算法题中Easy级别的第124题(顺位题号是543)。给定二叉树,您需要计算树的直径长度。 二叉树的直径是树中任意两个节点之间最长路径的长度。 此路径可能会也可能不会通过根节点。例:
给出一棵二叉树
1
这是悦乐书的第256次更新,第269篇原创
01 看题和准备
今天介绍的是LeetCode算法题中Easy级别的第123题(顺位题号是541)。给定一个字符串和一个整数k,你需要反转从字符串开头算起的每2k个字符的前k个字符。 如果剩下少于k个字符,则反转所有字符。 如果小于2k但大于等于k个字符,
研究了网上大部分的希尔排序代码,发现大部分都是互相抄的——因为网上甚至某些书上的实现大部分都是错的。希尔排序是插入排序的升级版,通过引入间隔,然后分组进行插入排序。再逐步缩小间隔,直至间隔为1时,做全数组的插入排序。dart 代码如下:
1 void shellSort<E
数组的表示的方法:(1)结构数组存储非零项(二元数组) (2)链表存储非零项:每个结点包含系数和指数两个数据域以及一个指针域,coef-expon-link typedef struct PolyNode *Polynomial;
struct PolyNode
{
int coef;
1. 前文回顾
在字符串算法—字典树(Tries)中,我们实现了在一堆字符串中寻找某个字符串的高效算法。但如果要从一段字符中,寻找某个字符串呢?
我们可以用字符串算法—字符串排序(下篇)中的后缀排序法(suffix arrays)来寻找关键词,但它消耗的内存有点大(毕竟要建一个超大的数组)。
连着这两道都是开学前数构老师的“爱心作业”,还没上课开学就给我们布置作业了,这道题有点小坑,也经常遇到类似的问题,特地拿出来记录一下。
------------------------------------------------题目--------
这是悦乐书的第255次更新,第268篇原创
01 看题和准备
今天介绍的是LeetCode算法题中Easy级别的第122题(顺位题号是538)。给定二进制搜索树(BST),将其转换为更大树,使原始BST的每个键都更改为原始键加上所有键的总和大于BST中的原始键。例如:
输入:二进制搜索树的根,如下所
题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
class Solution:
# array 二维列表
def Find
接着第二课的内容和带点第三课的内容。
(回顾)准备一个栈,从大到小排列,具体参考上一课....
构造数组的MaxTree
【题目】
定义二叉树如下:
public class Node{
public int value;
public Node left;
树的子结构
一、问题描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
二、算法实现
2.1、Java实现
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
这是悦乐书的第254次更新,第267篇原创
01 看题和准备
今天介绍的是LeetCode算法题中Easy级别的第121题(顺位题号是532)。给定一个整数数组和一个整数k,您需要找到数组中唯一的k-diff对的数量。 这里k-diff对被定义为整数对(i,j),其中i和j都是数组中的数字,它们的绝
矩形覆盖
一、问题描述
我们可以用2x1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2x1的小矩形无重叠地覆盖一个2xn的大矩形,总共有多少种方法?
二、算法思想
这题是通过递归的问题,类似于斐波那契数列问题,找到数列递推关系,加上初始值,可以用递归解决。当然也可以通过关系式推导出通项,利用迭代
数值的整数方
一、问题描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
二、算法思路
按照指数Exp的情况进行讨论。
Exp>0
Exp=0
Exp<0
三、算法实现
public class Solution {
题目描述
运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。
获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。
写入数据 put(key, valu
米诺斯迷宫的传说来源于克里特神话,在希腊神话中也有大量的描述,号称世界四大迷宫之一。
米诺斯是宙斯和欧罗巴的儿子,因智慧和公正而闻名,死后成为了冥国的判官。由于米诺斯得罪了海神波塞冬,波塞冬便以神力使米诺斯的妻子帕西法厄爱上了一头公牛,生下了一个牛首人身的怪物米诺陶洛斯。这个半人半牛的怪物不
这是悦乐书的第253次更新,第266篇原创
01 看题和准备
今天介绍的是LeetCode算法题中Easy级别的第120题(顺位题号是530)。给定具有非负值的二叉搜索树,找到任意两个节点的值之间的最小绝对差。例:
输入:
1
3
/
2
输出:1
说明:最小