![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 70
江山酒
努力学习的菜鸡
展开
-
【力扣每日一题】【2022-3-8】【蜡烛之间的盘子】
蜡烛之间的盘子原题传送门代码:class Solution {public: vector<int> platesBetweenCandles(string s, vector<vector<int>>& queries) { int len = s.size(); vector<int> psum(len); //前缀和数组 vector<int> lp(len); //离该原创 2022-03-08 12:38:57 · 177 阅读 · 0 评论 -
【力扣每日一题刷题记录】【第N个数字】【含解题代码C++】
题目来源 ====》》 【力扣第400题. 第 N 位数字】题目描述给你一个整数 n ,请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …] 中找出并返回第 n 位数字。示例 1:输入:n = 3输出:3示例 2:输入:n = 11输出:0解释:第 11 位数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, … 里是 0 ,它是 10 的一部分。提示:1 <= n <= 231 -.原创 2021-11-30 01:15:11 · 721 阅读 · 0 评论 -
【力扣刷题记录】【423.从英文中重建数字】
题目原址力扣第423题(从英文中重建数字)题目描述给你一个字符串 s ,其中包含字母顺序打乱的用英文单词表示的若干数字(0-9)。按升序返回原始的数字。示例 :输入:s = “owoztneoer”输出:“012”输入:s = “fviefuro”输出:“45”提示:1 <= s.length <= 105s[i] 为 [“e”,“g”,“f”,“i”,“h”,“o”,“n”,“s”,“r”,“u”,“t”,“w”,“v”,“x”,“z”] 这些字符之一原创 2021-11-24 14:00:16 · 621 阅读 · 0 评论 -
C++算法题 & 食物链 & 带权并查集
题目题目来源AcWing第240题动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A 吃 B,B 吃 C,C 吃 A。现有 N 个动物,以 1∼N 编号。每个动物都是 A,B,C 中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这 N 个动物所构成的食物链关系进行描述:第一种说法是 1 X Y,表示 X 和 Y 是同类。第二种说法是 2 X Y,表示 X 吃 Y。此人对 N 个动物,用上述两种说法,一句接一句地说出 K 句话,这 K 句话有的是真的,原创 2021-10-28 12:30:40 · 184 阅读 · 0 评论 -
C++数据结构 & 并查集 & 连通块中点数量
并查集背景及意义并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中。其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在空间上过大,计算机无法承受;即使在空间上勉强通过,运行的时间复杂度也极高,根本就不可能在比赛规定的运行时间(1~3秒)内计算出试题需要的结果,只能用并查集来描述。并查集是一种树型的数据结构,原创 2021-10-28 11:25:39 · 379 阅读 · 0 评论 -
C++算法题 & 最大异或对 & trie树
题目题目来源AcWing第143题在给定的 N 个整数 A1,A2……AN 中选出两个进行 xor(异或)运算,得到的结果最大是多少?输入格式第一行输入一个整数 N。第二行输入 N 个整数 A1~AN。输出格式输出一个整数表示答案。数据范围1 ≤ N ≤ 105,0 ≤ Ai <231输入样例:31 2 3输出样例:3解题思路首先可以很容易想到暴力枚举的办法for (int i = 0; i < n; i++){ for (int j =原创 2021-10-25 13:05:43 · 202 阅读 · 0 评论 -
C++ &数据结构 &Trie树&字典树 (trie字符串统计)
Trie树定义又称单词查找树,字典树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。基本性质根节点不包含字符,除根节点以外每个节点只包含一个字符。从根节点到某一个节点,路径上经过的字符连接起来,为该节点对应的字符串。每个节点的所有子节点包含的字符串不相同。例图该trie树存放了at,bee,b原创 2021-10-22 01:14:25 · 285 阅读 · 0 评论 -
KMP算法(暴力破解法的优化以及求next数组)
前言KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息。KMP算法的时间复杂度O(m+n) 。问题是:在主串S中找到第一次出现完整子串P时的起始位置。说简单点就是我们平时常说的关键字搜索。模式串就是关键字,如果它在一个原创 2021-10-19 17:41:09 · 434 阅读 · 0 评论 -
C++单调队列实现滑动窗口(数组实现队列)
题目来源AcWing第154题题目给定一个大小为 n≤106 的数组。有一个大小为 k 的滑动窗口,它从数组的最左边移动到最右边。你只能在窗口中看到 k 个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为 [1 3 -1 -3 5 3 6 7],k 为 3。数组最大值最小值[1 3 -1] -3 5 3 6 7-131 [3 -1 -3] 5 3 6 7-331 3 [-1 -3 5] 3 6 7-351 3 -1 [-3 .原创 2021-10-17 23:26:05 · 642 阅读 · 0 评论 -
C++表达式求值(栈)
AcWing第3302题题目给定一个表达式,其中运算符仅包含 +,-,*,/(加 减 乘 整除),可能包含括号,请你求出表达式的最终值。注意:数据保证给定的表达式合法。题目保证符号 - 只作为减号出现,不会作为负号出现,例如,-1+2,(2+2)*(-(1+1)+2) 之类表达式均不会出现。题目保证表达式中所有数字均为正整数。题目保证表达式在中间计算过程以及结果中,均不超过 231−1。题目中的整除是指向 0 取整,也就是说对于大于 0 的结果向下取整,例如 5/3=1,对于小于 0 .原创 2021-10-17 11:44:15 · 3425 阅读 · 0 评论