随笔分类 -  数据结构

摘要:做一道拆点的图论题时,需要用到堆优化的dijkstra,其中的堆存的是一个struct(参数大于2,pair放不下) 因为堆会自动排序,所以struct需要重载运算符。 注意:这两个模板是为了达到小根堆的效果 模板写法: 写法1:大根堆+重载小于号,但是返回的时候要反一下(返回与重载运算符相异) s 阅读全文
posted @ 2025-02-13 17:58 Tshaxz 阅读(1) 评论(0) 推荐(0) 编辑
摘要:获取set首个元素值的方法 作用:因为STLset有自动排序的功能,所以有时需要获取set的首元素作为字典序最小来进一步处理。 方法:在h.begin()前面加星号*即可获取set首个元素的值 set<char> h; cout << *h.begin(); 例题:字符串化繁为简 示例1 输入 () 阅读全文
posted @ 2025-02-13 16:10 Tshaxz 阅读(2) 评论(0) 推荐(0) 编辑
摘要:学习资料 1.B02 图的存储 2.图是如何存储的:BFS、DFS 3.算法讲解059【必备】建图、链式前向星 各种存图方式的区别 图片来自上述学习资料 这里主要推荐表格中的后两种存图方法,因为适用于各种图。 只有在需要对一个点的所有出边进行排序的场合下,使用vector存边排序更方便,其余情况ve 阅读全文
posted @ 2025-02-12 10:42 Tshaxz 阅读(5) 评论(0) 推荐(0) 编辑
摘要:stod函数 将string转为double string t = s.substr(i, j - i); double num = stod(t); 例题:货币单位换算 样例1 输入 2 20CNY53fen 53HKD87cents 输出 6432 说明: 20元53分+53港元87港分,换算成 阅读全文
posted @ 2025-02-09 18:24 Tshaxz 阅读(4) 评论(0) 推荐(0) 编辑
摘要:单个char转string char x = 'a'; string c = string(1, x); string转单个char string s = "abc"; char x = s[0]; string转char[](字符数组) string s = "abc"; s.c_str(); ( 阅读全文
posted @ 2025-02-08 20:48 Tshaxz 阅读(3) 评论(0) 推荐(0) 编辑
摘要:1.数据量较小时,可以用队列模拟 2.数据量较大时,需要使用递推公式 公式推导举例 找规律,举个例子 n = 5, m = 4, n下标从0开始,m下标从1开始 f[1] = 0; f[2] = (f[1] + a[4]) % i; f[3] = (f[2] + a[3]) % i; f[4] = 阅读全文
posted @ 2025-01-25 23:50 Tshaxz 阅读(7) 评论(0) 推荐(0) 编辑
摘要:学习资料 1.单调队列 滑动窗口最大值【基础算法精讲 27】 2.E11【模板】单调队列 滑动窗口最值 3.算法讲解054【必备】单调队列-上 首先明确一点,队列中存的是下标,不是数组中的值,数组中的值是num[q[tt]]和num[q[hh]]。 三步走: 1.判断队头出窗口 在队列不空时,判断队 阅读全文
posted @ 2023-05-06 18:04 Tshaxz 阅读(57) 评论(0) 推荐(0) 编辑
摘要:求解方法: 二叉树的最近公共祖先(Lowest Common Ancestor) 北邮考研机试题 求两结点之间的最短路径长度 视频讲解 #include <iostream> #include <algorithm> #include <cstring> using namespace std; c 阅读全文
posted @ 2022-09-05 11:22 Tshaxz 阅读(20) 评论(0) 推荐(0) 编辑
摘要:判断某序列是否为BST的后序遍历 46. 二叉搜索树的后序遍历序列 class Solution { public: vector<int> seq; bool verifySequenceOfBST(vector<int> sequence) { seq = sequence; return df 阅读全文
posted @ 2022-09-03 11:23 Tshaxz 阅读(21) 评论(0) 推荐(0) 编辑
摘要:3765. 表达式树 将给定的表达式树(二叉树)转换为等价的中缀表达式(通过括号反映操作符的计算次序)并输出。 /** * Definition for a binary tree node. * struct TreeNode { * string val; * TreeNode *left; * 阅读全文
posted @ 2022-08-05 16:53 Tshaxz 阅读(93) 评论(0) 推荐(0) 编辑
摘要:151. 表达式计算4 写法一: #include <iostream> #include <stack> #include <unordered_map> using namespace std; stack<char> op; stack<int> num; int qmi(int a, int 阅读全文
posted @ 2022-08-05 15:42 Tshaxz 阅读(29) 评论(0) 推荐(0) 编辑
摘要:题单:LeetCode链表 2. 两数相加 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) { 阅读全文
posted @ 2022-07-30 18:41 Tshaxz 阅读(19) 评论(0) 推荐(0) 编辑
摘要:记录LeetCode 热题 HOT 100 代码 1. 两数之和 class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> hash; for(int i 阅读全文
posted @ 2022-07-18 19:58 Tshaxz 阅读(274) 评论(0) 推荐(0) 编辑
摘要:AcWing PAT甲级树专题 1476. 数叶子结点 #include <iostream> #include <cstring> using namespace std; const int N = 110; int h[N], e[N], ne[N], idx; int n, m; int c 阅读全文
posted @ 2022-04-15 21:55 Tshaxz 阅读(46) 评论(0) 推荐(0) 编辑
摘要:学习资料 1.单调栈知识 2.算法讲解052【必备】单调栈-上 口诀:大增小减,左从左到右,右从右到左 解释:找某个元素左边或右边第一个比它大的元素,构造单调递增栈,遍历顺序与前面左右相同,要找左边就从左到右遍历,要找右边就从右到左遍历; 找某个元素左边或右边第一个比它小的元素,构造单调递减栈,遍历 阅读全文
posted @ 2022-04-12 18:42 Tshaxz 阅读(34) 评论(0) 推荐(0) 编辑
摘要:单链表 // head存储链表头,e[]存储节点的值,ne[]存储节点的next指针,idx表示当前用到了哪个节点 int head, e[N], ne[N], idx; // 初始化 void init() { head = -1; idx = 0; } // 在链表头插入一个数a void in 阅读全文
posted @ 2021-09-12 12:19 Tshaxz 阅读(60) 评论(0) 推荐(0) 编辑
摘要:Trie:高效地存储和查找字符串集合的数据结构 Trie树的存储 比如说要存储下面这些字符串 从根结点开始存 然后若一个结点是一个单词的末尾,则要打上一个标记,从根结点到该结点存在一个单词,图中用五角星表示标记。 这是Trie树的存储。 Trie树的查找 Trie树可以高效地查找某个单词是否出现过以 阅读全文
posted @ 2021-09-03 21:41 Tshaxz 阅读(32) 评论(0) 推荐(0) 编辑

Language: HTML
点击右上角即可分享
微信分享提示