![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 60
jaywangpku
专注于后台开发,对数据库,文件系统,云存储,分布式图计算框架与信息学竞赛亦感兴趣。
展开
-
【力扣LeetCode】124 二叉树中的最大路径和
题目描述(难度难)路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。链接https://leetcode-cn.com/problems/binary-tree-maximum-path-sum/代码/** * Definition for a binary tree node.原创 2021-04-11 19:34:00 · 341 阅读 · 0 评论 -
【力扣LeetCode】76 最小覆盖子串
题目描述(难度难)给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。示例 1:输入:s = “ADOBECODEBANC”, t = “ABC”输出:“BANC”示例 2:输入:s = “a”, t = “a”输出:“a”提示:1 <= s.length, t.length <= 105s 和 t 由英文字母组成进阶原创 2021-04-11 18:43:08 · 131 阅读 · 0 评论 -
【力扣LeetCode】146 LRU 缓存机制
题目描述(难度中)运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写原创 2021-04-11 17:22:02 · 142 阅读 · 0 评论 -
sqrt方法复杂度探讨
sqrt方法复杂度探讨有一次,博主在解一个问题时,由于开方花费了大量时间从而导致时间复杂度过高而无法AC,博主决定研究一下sqrt的复杂度。二分法对开方这个操作,二分法是最直观的方案,也非常易于理解。// 二分法 double mysqrt1(int m){ if(m <= 1){ return m; } double last = 0; double start = 0; double end = m; double mid = (start + end)/2; whil原创 2021-01-01 14:17:58 · 7634 阅读 · 2 评论 -
模拟退火算法解多元函数
模拟退火算法解多元函数题目:F(x)=11.16386−0.0903x1−0.1487x2−0.0664x3+0.09074x4−2.452∗10−4x1x2+6.228∗10−5x1x3+2.457∗10−3x1x4+3.8688∗10−3x2x3−6.471∗10−3x2x4−1.451∗10−3x3x4F(x)=11.16386-0.0903x_1-0.1487x_2-0.0664x_3+0.09074x_4-2.452*10^{-4}x_1x_2+6.228*10^{-5}x_1x_3+2.45原创 2020-07-07 18:34:36 · 6127 阅读 · 4 评论 -
64匹马,8个赛道,最少多少次比赛找出最快的 4 匹马,以及对所有马进行排序
问题:64匹马,8个赛道,最少几场比赛找出最快的 4 匹马,最少几场对所有马进行排序问题一:64 匹马,8 个赛道,最少几场比赛找出最快的 4 匹马问题中隐含的意思: 1、就是每次比赛马的时间不计,只对比赛的马进行快慢排名,在一次比赛中 A 马 比 B 马快,那就认为它就是比 B 马快。 2、只需要找出最快的 4 匹马,不需要知道顺序。从中可以得出淘汰原理: 1、一匹马 A 在一...转载 2019-08-19 11:51:37 · 9053 阅读 · 1 评论 -
【华为机试题解】直线交点数量
大概题意输入一行如下格式的字符串{(0,1),(1,0)}|{(0,5),{5,0)}|{(1,3),(3,1)}一个大括号中有两个小括号,表示两个点的坐标,即一个大括号可以确定一条直线。那么上述字符串可以表示很多直线,这些直线有交点,求这些交点的个数。交点坐标很可能是浮点数,浮点数保留小数点后两位,保留采用四舍五入的方式。思路解析每一个点,计算每一条直线,算出每一个交点,四舍五入后...原创 2019-06-13 22:40:42 · 700 阅读 · 1 评论 -
【华为机试题解】奥特曼打怪兽
大概题意在一个N*N的正方形区域,每个小格可能有三种状态值为0,正常可通过值为1,奥特曼可通过,同时还可以消灭怪兽,消灭后值变为0,消灭怪兽数量+1值为-1,有大石头,奥特曼无法通过奥特曼需要先从上往下走,这个过程只能向下或者向右,到达右下角后,再从下往上走,这个过程只能向左或向上。需要找到奥特曼可以消灭怪兽的最大数量输入:第一行一个N,表示N的正方形区域的大小,N不超过50第二行...原创 2019-06-13 22:25:13 · 4695 阅读 · 1 评论 -
约瑟夫环问题
题目描述已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。(也类似于变态杀人狂问题)通常解决这类问题时我们把编号从0~n-1,最后结果+1即为原问题的解。通常,我们会要求输出最后一位出列的人的序号。那么这里主要研究的是最后一个出列的人的序号要怎么确...原创 2019-03-23 20:50:12 · 1278 阅读 · 0 评论 -
二叉树-DFS-BFS-递归-非递归
二叉树-DFS-BFS-递归-非递归BFSBFS一般使用非递归的模式访问相对简单,其递归的模式相当于是非递归模式,按每一层打标签访问的结果。使用list保存每一层的需要访问的节点,可以将代码写成递归形式。非递归形式主要思想:从根节点以此访问左右子树,然后将访问到的节点按访问顺序依次存储在队列之中,在队列非空的情况下,一直按照这种方案进行即可完成BFS的非递归访问。#include <...原创 2019-03-25 13:52:46 · 770 阅读 · 0 评论 -
PyBloomfilter API
文章目录PyBloomfilter APIBloomFilter类BloomFilter类的静态方法BloomFilter类的实例属性BloomFilter类的实例方法BloomFilter类的魔法方法BloomFilter类的异常处理类PyBloomfilter API可以使用的平台:Windows UnixBloomFilter类class pybloomfilter.BloomF...原创 2018-10-26 11:51:57 · 315 阅读 · 0 评论 -
BloomFilter原理和使用
文章目录BloomFilter原理和使用BloomFilter原理适用场景基础性质False-Positive推导Bloom Filter之python包pybloomfilterpybloomfilter代码实例BloomFilter原理和使用BloomFilter原理适用场景在很多场景下,会遇到流式元素的处理,最主要的是集合判断与去重问题。例如我们会判断一个email地址是否在黑名单中...原创 2018-10-25 21:34:14 · 2731 阅读 · 0 评论 -
求最大和
线性动态规划老师写出一行n 个正整数,要求从中选取若干个,但不能选相邻的数,使选取数的和最大。如:从13、18、28、45、21中选取18、45和为63,是最大和。起初呈呈觉得很容易,可后来越想越感到棘手。老师提示:第i个数是否选取,可确定前i个数中的最大和。它可由前i-1个数中的最大和与前i-2个数中的最大和来推算。呈呈立刻开窍,难题迎刃而解!输入: n (0#include &amp;...原创 2018-06-08 10:48:33 · 1653 阅读 · 0 评论 -
相会日期
关于日期的操作康康、聪聪和欢欢三个同学都定期去“爱心”福利院做义工,康康每a天去一次、聪聪每b天去一次、欢欢每c天去一次。2014年5月1日他们同聚“爱心”福利院,过了一个非常有意义的“五一”劳动节。问:下一次他们再相聚“爱心”福利院,将是哪年几月几日? 【输入】a b c (0#include &amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;原创 2018-06-08 10:47:40 · 291 阅读 · 0 评论 -
快速幂
算法–快速幂全称:快速幂取模用途:快速求一个幂式的模,在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模算法。Mod操作转换公式abmodc=(amodc)bmodcabmodc=(amodc)bmodca^b mod c = (a mod c)^b mod cabmodc=(((a2)b/2)modcabmodc=(...原创 2018-05-27 13:35:44 · 203 阅读 · 0 评论