- 博客(5)
- 收藏
- 关注
原创 树的重心(dfs枚举)
树的重心(dfs枚举) #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 1e5 + 10, M = N*2; int h[N]; struct node{ int to,nex; }e[M]; bool st[N] = {0}; //visted数组记录已经访问的元素; c++有一个zero-initializer(零
2021-06-01 22:38:37 80
原创 BFS 迷宫问题C++队列实现
BFS 迷宫问题C++队列实现 #include <cstdio> #include <queue> #include <iostream> using namespace std; typedef pair<int, int> PII; const int N = 110; int G[N][N]; int L[N][N]; queue <PII> q; int m,n; int bfs(){ //第一个元素进队 PII sta
2021-03-29 22:17:47 654
原创 Increase and Copy (codeforce)
Increase and Copy (codeforce)解法及c语言代码 思路: 转化:最少次数达到n–>什么样的加法乘法组合能更快得到更大的数字 首先:先加再乘,一定比先乘再加,能更快得到更大的数字 假设前面全都+1,然后开始复制—加i次,乘j次,得到的sum = (1+i)*(1+j) (1+i)*(1+j) = n, 使得i+j最小,三角不等式: 1+i=1+j=sqrt(n)时最小 有一些数需要最后再补,在这个过程中间合适位置加一次复制即可 //Increase and Copy.c #
2021-03-02 00:19:03 129
原创 验证二叉树是否是BST(C语言实现)
验证二叉树是否是BST(C语言实现) int isBST(BTNode *node, int min, int max) 函数中包括两个参数min, max,主函数中call时用 isBST(node, -10000, 10000) 解题思路 前序遍历 从根结点开始向下走,只要向左走,结点一定在变小(左子树<根); 只要向右走,结点一定在变大(右子树>根) int isBST(BTNode *node, int min, int max) // the item stored in node
2021-02-26 22:09:22 174
原创 leetcode剑指offer68II-二叉树的最近公共祖先(C语言实现)
leetcode剑指offer68II-二叉树的最近公共祖先(C语言实现) /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ struct TreeNode* lowestCommonAncestor(struct TreeNode* root, struc
2021-02-26 21:32:47 196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人