Loading

随笔分类 -  数据结构与算法

摘要:算法:一道题学会位操作和子集运算 题目 1178. 猜字谜 外国友人仿照中国字谜设计了一个英文版猜字谜小游戏,请你来猜猜看吧。 字谜的迷面 puzzle 按字符串形式给出,如果一个单词 word 符合下面两个条件,那么它就可以算作谜底: 单词 word 中包含谜面 puzzle 的第一个字母。 单词 阅读全文
posted @ 2021-02-26 17:53 cpaulyz 阅读(163) 评论(0) 推荐(0)
摘要:ADT:单调队列(Leetcode1438) 题目描述 1438. 绝对差不超过限制的最长连续子数组 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit 。 如果不存在满足条件的子数组,则返回 阅读全文
posted @ 2021-02-21 11:40 cpaulyz 阅读(159) 评论(0) 推荐(0)
摘要:ADT:双优先队列,解决中位数问题 相关算法题:480. 滑动窗口中位数 1 思路 需要维护一个数据结构,能够支持 void insert(int num) void remove(int num) double getMedian() 因为是中位数,这里用两个优先队列来实现,示例图如下: 为了方便 阅读全文
posted @ 2021-02-03 22:16 cpaulyz 阅读(466) 评论(0) 推荐(1)
摘要:遇到了一道题,一开始以为是简单的最小生成树 做完发现一直WA,学习了一下发现是朱刘算法,整理一下笔记 P4716 最小树形图 地址:https://www.luogu.com.cn/problem/P4716 题目背景 这是一道模板题。 题目描述 给定包含 nnn 个结点, mmm 条有向边的一个图 阅读全文
posted @ 2020-03-19 22:29 cpaulyz 阅读(1474) 评论(0) 推荐(0)
摘要:简介 在LeetCode写题目的时候评论区看到一个方法,一开始没看懂,后来查了一些资料整理了一下。原题见文中例3 什么是滑动窗口算法? The Sliding Problem contains a sliding window which is a sub – list that runs over 阅读全文
posted @ 2020-03-03 12:30 cpaulyz 阅读(969) 评论(0) 推荐(0)
摘要:最小生成树一般有两个算法 Prim算法 Kruskal算法 二者都用了贪心的思想 简单来说,把一个图的边都去掉 Prim算法就是不断增大连通分量 Kruskal算法就是不断加边 Prim算法 算法简单描述 1. 输入:一个加权连通图,其中顶点集合为V,边集合为E; 2. 初始化:Vnew = {x} 阅读全文
posted @ 2020-03-03 11:32 cpaulyz 阅读(562) 评论(0) 推荐(1)
摘要:图是由顶点集(VertexSet)和边集(EdgeSet)组成,针对图G,顶点集和边集分别记为V(G)和E(G)。 依据图的边集是否为有向 ,可把图分为 有向图 和 无向图 根据图是否有权重 ,可以分为 有权图 和 无权图 。 图的基本知识 图的概念 图是由顶点集(VertexSet)和边集(Edg 阅读全文
posted @ 2020-03-03 11:24 cpaulyz 阅读(501) 评论(0) 推荐(0)
摘要:其实并查集顾名思义就是有“合并集合”和“查找集合中的元素”两种操作的关于数据结构的一种算法。 并查集是一种用来 管理元素分组情况 的数据结构,并查集可以高效地进行如下操作: 查询元素a和元素b是否属于同一组 合并元素a和元素b所在组 定义 其实并查集顾名思义就是有“合并集合”和“查找集合中的元素”两 阅读全文
posted @ 2020-03-03 11:14 cpaulyz 阅读(313) 评论(0) 推荐(0)