自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hero_th的博客

一只理智糖

  • 博客(346)
  • 收藏
  • 关注

原创 fatal: Authentication failed for ‘https://gitee.com/xxx/xxx.git/‘

remote: Incorrect username or password (access token)fatal: Authentication failed for 'https://gitee.com/xxx/xxx.git/'

2022-08-05 23:15:57 223

原创 postgresql 源码阅读 - 查询处理模块

postgresql 源码阅读

2022-08-05 11:54:28 82

原创 蓝桥杯2021年第十二届C++省赛第七题-砝码称重

Idea用例子来说。首先容器是空的,插入1;再次插入4,那么1,4可以组成3,5,那么容器里面现在就是1,3,4,5,再次插入6,用它和容器里的每个数相减相加,得到容器为1,2,3,4,5,6,7,9,10,11;我们只需要容器时刻维护每次相加减的结果,容器的长度就是答案。Code#include<iostream>#include<cmath>#include<algorithm>#include<vector>#include&l..

2022-04-01 21:29:57 115

原创 蓝桥杯2021年第十二届C++省赛第四题-货物摆放

Idea首先需要获取 n 的所有因数,然后从中取三次,三次的数可以相同,只要这三个数的乘积的结果为n即可注意设置的所有变量类型需要为long long 类型Code#include<iostream>#include<cmath>#include<algorithm>#include<vector>#include<queue>#include<string>#include<unordered_set&.

2022-04-01 15:22:24 80

原创 蓝桥杯2021年第十二届C++省赛第三题-直线

Idea两点式直线方程 :Ax + By + C = 0如已知 a (x1,y1),b(x2,y2),则(y1-y2)x + (x2-x1)y + x1y2-x2y1 = 0对于这个公式的推导也比较简单:我们已知直线的斜率K = (y1-y2) / (x1-x2)故我们直线方程现在可以写成y = kx+b我们先 a,b 两点代入该方程,我们得到两个方程y1 = k x1 + by2 = k x2 + b然后我们两个方程相加,代入斜率k的表达式,然后将新的等式进行通分,展开.

2022-04-01 14:29:30 119

原创 蓝桥杯2021年第十二届C++省赛第二题-卡片

Idea我们发现每拼出一个数,这个数每位上的数字卡片数量将减一。因此 我们初始一个大小为10的数组,数组中每个位置的数量都是2021,然后我们枚举可以拼出的数,将该数每一位对应的数字数量减一。AC Code#include<iostream>#include<cmath>#include<algorithm>#include<vector>#include<queue>#include<string>#incl.

2022-04-01 10:06:53 847

原创 蓝桥杯2021年第十二届C++省赛第一题-空间

Idea1 MB = 1024 KB1 KB = 1024 B(Byte)1 B = 8 b(bit)以上单位由大到小分别表示为MB 兆字节、KB 千字节、Byte 字节、bit 比特(位)1 bit 代表 1 位二进制整数Answer256 * 1024 * 1024 * 8 / 32

2022-04-01 09:46:52 963

原创 蓝桥杯2020年第十一届C/C++研究生组国赛第六题-重复字符串

Idea先计算出字符串 str 的长度 n然后将这个字符串分成 k 组,每组的长度为 n / k将每组的字符串每位进行比较,得出该位置出现最多的字母的个数然后 该组的长度 k - max 即当前该位最少进行修改的次数然后 依次比较每一位,累加求得结果即可Code#include<iostream>#include<cmath>#include<algorithm>#include<queue>#include<string&gt

2022-03-26 10:31:28 961

原创 力扣-530. 二叉搜索树的最小绝对差

Idea二叉搜索树:其中序遍历的数列是从小到大有序的。所以我们要找最小的绝对差,肯定是中序遍历中两个相邻的数。因此我们只需要用一个变量 pre 存中序遍历上一个的值即可。AC Codeclass Solution {public: int pre = -1,ans = 100000; void inorder(TreeNode* root){ if(!root) return ; inorder(root->left);

2022-03-18 11:07:12 334

原创 力扣-543. 二叉树的直径

Idea根据题目中的条件说的是,直径代表的是 任意两个节点的最长路径。我也是看了题解才了解到,最左下的左结点跟 最右下的右节点 所连起来的路径有可能不是最长…所以,我们需要遍历树中的每一个节点,每个节点可以看作成一个根节点,以当前根节点的子树,左子树的最大深度 + 右子树的最大深度 = 当前根节点的直径。最后递归的过程中,我们拿到最大值即可AC Codeclass Solution {public: int ans = 0; int depth(TreeNode* root

2022-03-18 11:01:44 338

原创 力扣-572. 另一棵树的子树

Idea用深度优先搜索,若以当前结点为根节点的树跟子树相等,那么就要满足一下条件当前结点的值相等递归左树的左孩子,右树的左孩子递归左树的右孩子,右树的右孩子。然后在主函数中需要递归遍历左树中的每一个节点AC Codeclass Solution {public: bool dfs(TreeNode* root,TreeNode* subRoot){ if(!root && !subRoot) return true; if

2022-03-18 10:50:57 341

原创 力扣-606. 根据二叉树创建字符串

Idea判断几种情况只有左子树的时候,后边不用加括号只有右子树的时候,左子树需要加一个空括号左右子树都存在时候,左右都需要被括号 括起来AC Codeclass Solution {public: string tree2str(TreeNode* root) { string ans; if(!root) return ""; ans+=to_string(root->val); if(root->l

2022-03-15 21:50:57 186

原创 力扣-797. 所有可能的路径

Idea使用dfs深度搜索 + 回溯,每次的找到最后一个n-1 的点,即最大深度AC Codeclass Solution {public: vector<vector<int>> ans; vector<int> cur; void dfs(vector<vector<int>> &graph ,int x ,int n){ if(x == n){ ans.e

2022-03-15 21:47:36 192

原创 力扣-973. 最接近原点的 K 个点

Idea使用优先队列(大顶堆)构建数据结构AC Codeclass Solution {public: vector<vector<int>> kClosest(vector<vector<int>>& points, int k) { int n = points.size(); priority_queue<pair<int,int>> q; for(int

2022-03-15 21:39:40 185

原创 力扣-1337. 矩阵中战斗力最弱的 K 行

Idea使用C++ STL中的优先队列因为创建的优先队列默认建立的是大顶堆。所以我们最后存放的答案数组还需要进行一次反转。AC Codeclass Solution {public: vector<int> kWeakestRows(vector<vector<int>>& mat, int k) { priority_queue<pair<int,int>> q; int m = m

2022-03-14 15:13:33 900

原创 力扣-1534. 统计好三元组

Idea直接暴力枚举AC Codeclass Solution {public: int countGoodTriplets(vector<int>& arr, int a, int b, int c) { int ans = 0; int n = arr.size(); for(int i = 0;i<n;i++){ for(int j = i+1;j<n;j++){

2022-03-14 13:33:55 857 1

原创 力扣-1641. 统计字典序元音字符串的数目

Idea用排列枚举的思想当 n = 1 时,全部为1当 n = 2 时,a 的种数是 n = 1 五个全部加起来的种数,e 的种数是 后四个全部加起来的种数,i 的种数是后三个全部加起来的种数…以此类推AC Codeclass Solution {public: int countVowelStrings(int n) { if(n == 1) return 5; vector<int> a(5,1); int ans

2022-03-14 13:29:31 369

原创 力扣-1557. 可以到达所有点的最少点数目

Idea数组中第二个元素既是能够达到的点,遍历查找即可AC Codeclass Solution {public: vector<int> findSmallestSetOfVertices(int n, vector<vector<int>>& edges) { vector<int> node(n,0); for(int i=0;i<edges.size();i++){

2022-03-14 13:24:13 381

原创 力扣-1791. 找出星型图的中心节点

Idea建立哈希表,遍历数组,那个节点的边数最多即是中心点AC Codeclass Solution {public: int findCenter(vector<vector<int>>& edges) { int n = edges.size(); unordered_map<int,int> map; int cnt = 0; int ans ; for(in

2022-02-27 16:34:33 248

原创 力扣-746. 使用最小花费爬楼梯

Idea动态规划题目中第一句话:可选择向上爬一个或者两个台阶。可得初步状态转移方程为: dp[i] = dp[i-1] + dp[i-2]题目中第二句话:可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。可得 条件为: dp[0] = dp[1] = 0综上结合题目,可得状态转移方程:dp[i] = min(dp[i-2] + cost[i-2],dp[i-1] + cost[i-1])AC Codeclass Solution {public: int minCostC

2022-02-23 20:20:33 60

原创 蓝桥杯2015年第六届C/C++A组国赛第四题-穿越雷区

Idea求最短路径,用bfs解题code评测地址AC Code#include<iostream>#include<cmath>#include<algorithm>#include<queue>using namespace std;#define MAX_SIZE 101struct node { int x,y; int step;};int dx[4]={1,0,0,-1};int dy[4]={0,1,-1,0}.

2022-02-23 11:31:22 292

原创 蓝桥杯2015年第六届C/C++B组国赛第一题-积分之迷

枚举#include<iostream>using namespace std;int main(){ for(int i = 1;i<100;i++){ for(int j = 1;j<40;j++){ for(int k = 1;k<300;k++){ if(3*i+7*j+k == 315 && 4*i+10*j+k==420){ cout<<i+j+k<<endl; } } .

2022-02-23 11:04:38 284

原创 蓝桥杯2016年第七届C/C++A组省赛第二题-生日蜡烛

Code直接枚举#include<iostream>#include<cmath> using namespace std;int main(){ int ans = 0; for(int i = 1 ;i<50;i++){ ans = 0; for(int j = i;j<50;j++){ ans += j; if(ans == 236) { cout<<i; return 0; } }.

2022-02-21 20:33:17 234

原创 蓝桥杯2015年第六届javaB组省赛第一题-三角形面积

Idea建立坐标系,规定每个点的坐标,然后代入三角形面积 海伦公式即可double p = (a + b + c) / 2double area = sqrt(p*(p-a)(p-b)(p-b))Code#include<iostream>#include<cmath> using namespace std;int main(){ int x1,y1,x2,y2,x3,y3; cin>>x1>>y1>>x2>.

2022-02-21 20:15:13 74

原创 力扣-119. 杨辉三角 II

Idea判断 当前列的列号 为第一列或者为最后一列的时候,该值为1中间的其他列,为上一行的当前列号的值 + 列号减一的值AC Codeclass Solution {public: vector<int> getRow(int rowIndex) { vector<int> ans; if(rowIndex == 0) return vector<int>(1,1); if(rowIndex == 1)

2022-02-21 19:42:50 73

原创 力扣-1. 两数之和

Idea用哈希表来存储 数组中每个元素对应的下标同时在遍历数组时候,在哈希表中寻找目标值target - 当前值nums[i] 是否能在哈希表中找到这个键对应的值就是下标了AC Codeclass Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> ans; int n = nums.size()

2022-02-17 13:03:21 31

原创 蓝桥杯2020年第十一届七月份C/C++B组省赛第四题-REPEAT程序

prog.txtA = 0REPEAT 2: A = A + 4 REPEAT 5: REPEAT 6: A = A + 5 A = A + 7 REPEAT 6: A = A + 7 REPEAT 4: A = A + 2 A = A + 7 A = A + 2 REPEAT 7: REPEAT 4:..

2022-02-15 20:34:49 544

原创 力扣-1464. 数组中两元素的最大乘积

AC Code第一次遍历找到最大值以及最大值的索引接着遍历找到数组中剩下的最大值class Solution {public: int maxProduct(vector<int>& nums) { int n = nums.size(); int n1 = 0,index; for(int i = 0;i<n;i++){ if(nums[i] > n1){

2022-02-13 19:48:11 100

原创 力扣-111. 二叉树的最小深度

111. 二叉树的最小深度AC Code需要注意一点就是,得判断根节点的左子树和右子树 存不存在class Solution {public: int minDepth(TreeNode* root) { if(!root) return 0; if(!root->left && !root->right) return 1; else if(root->left && !root->

2022-02-12 13:58:06 202

原创 力扣-559. N 叉树的最大深度

559. N 叉树的最大深度AC Codeclass Solution {public: int maxDepth(Node* root) { if(!root) return 0; int num = 1; for(Node* item : root->children){ num = max(num,maxDepth(item)+1); } return num; }};

2022-02-11 19:33:34 206

原创 力扣-102. 二叉树的层序遍历

102. 二叉树的层序遍历AC Codeclass Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { vector<int> level; vector<vector<int>> res; queue<TreeNode*> s; unordered_map<TreeNod

2022-02-11 17:40:45 31

原创 力扣-103. 二叉树的锯齿形层序遍历

103. 二叉树的锯齿形层序遍历Idea层序遍历首先肯定想到的是bfs然后根据题目的限定条件,偶数层的结点需要倒序所以我们先将每层的结点存入到一个数组,最后再对得到的数组进行倒序处理就可以了AC Codeclass Solution {public: vector<vector<int>> zigzagLevelOrder(TreeNode* root) { vector<vector<int>> ans;

2022-02-11 17:37:32 107

原创 蓝桥杯2018年第九届C/C++A组国赛第一题-三角形面积

Code#include<iostream>#include<cmath>using namespace std;typedef long long LL;int main(){ float x1 = 2.3,y1 = 2.5; float x2 = 6.4,y2 = 3.1; float x3 = 5.1,y3 = 7.2; float a = sqrt(pow(x1-x2,2)+pow(y1-y2,2)); float b = sqrt(pow(x1-x.

2022-02-11 16:37:37 344

原创 蓝桥杯2016年第七届JavaC组国赛第一题-平方末尾

Idea理解清楚题目,举几个简单的例子就可以知道怎么样解决了,比如长度为3的平方数125 * 125,平方末尾的数字只与25 * 25的结果的后面两位数字是相关的,与其他位上的数字是无关的,例如101 * 101平方末尾的两个数字只与01 * 01相乘的结果是有关的,所以我们只需要计算[4,99]的平方数字的末尾两位数字,加入到set集合中去重即可,最后set集合的长度就是最终平方末尾两位数字的所有可能。Code#include<iostream>#include<unorder.

2022-02-11 16:25:54 196

原创 力扣-116. 填充每个节点的下一个右侧节点指针

116. 填充每个节点的下一个右侧节点指针AC Code用哈希表记录队列中相邻的结点是否在同一层级上然后用bfs遍历即可class Solution {public: Node* connect(Node* root) { if(!root) return root; queue<Node*> Q; unordered_map<Node*,int> map; Q.push(root);

2022-02-11 13:44:42 35

原创 力扣-589. N 叉树的前序遍历

589. N 叉树的前序遍历AC Code递归遍历class Solution {public: vector<int> res; void dfs(Node* root){ if(!root) return ; res.emplace_back(root->val); for(Node* item : root->children){ dfs(item); } }

2022-02-11 13:15:30 29

原创 力扣-590. N 叉树的后序遍历

590. N 叉树的后序遍历AC Code递归版class Solution {public:vector<int> res; void dfs(Node* root){ if(!root) return; for(Node* item : root->children){ postorder(item); } res.emplace_back(root->val); }

2022-02-11 13:11:44 137

原创 力扣-222. 完全二叉树的节点个数

222. 完全二叉树的节点个数AC Codeclass Solution {public: int countNodes(TreeNode* root) { if(!root) return 0; return countNodes(root->left) + countNodes(root->right) + 1; }};

2022-02-11 12:50:17 102

原创 力扣-1022. 从根到叶的二进制数之和

1022. 从根到叶的二进制数之和Idea我刚开始想复杂了,以为dfs每次递归到每一个叶子结点时,需要加一下判断。是否重复递归到相同的叶子结点。看了答案才知道,原来根本不用考虑,看来还是对二叉树的递归理解得不是很深AC Codeclass Solution {public: int sum = 0; void dfs(TreeNode* root,int cur) { if(!root) return ; cur = cur*2 + root-&g

2022-02-11 12:29:20 233

原创 力扣-386 字典序排数

386. 字典序排数Idea讲int类型的数组 转存到 string数组利用string 的字典序排序 直接进行排序AC Codeclass Solution {public: vector<int> lexicalOrder(int n) { vector<string> vec; vector<int> ans; for(int i = 1;i<=n;i++){ v

2022-01-21 21:16:13 279

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除