YunYan

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

09 2020 档案

摘要:先来看一下递归版的后序遍历是怎么写的 void dfs(TreeNode *root){ if(root==NULL) return ; dfs(root->left);//左节点 dfs(root->right);//右节点 cout<<roo->val<<endl;//访问 } 可以看到,对于r 阅读全文
posted @ 2020-09-29 22:15 Target--fly 阅读(147) 评论(0) 推荐(0)

摘要:判环我们常用的方法是并查集,但是这个题是有向图,然后寻找有根树,什么是有根树呢? 根据题目大意,本题的有向图是在有根树的基础上形成了,也就是在有根树的基础上加了一条边,然后我们的任务就是要找出这条边,如果有多种情况,那么找到序号最大的边。 在我们添加完边后有2种情况, 1 第一种,图中不存在入度为2 阅读全文
posted @ 2020-09-19 10:04 Target--fly 阅读(198) 评论(0) 推荐(0)

摘要:初识创建数据库有两种方法 1 右键点击数据库,然后点击新建数据库 首先输入数据库的名称 然后设置主文件和从文件设置初始大小和自动增长量的大小,主文件的后缀名为.mdf,从文件的后缀名为.ldf,然后点击确定就好了 第二种方法通过 点击新建查询 create database stu on prima 阅读全文
posted @ 2020-09-13 22:30 Target--fly 阅读(312) 评论(0) 推荐(0)

摘要:dfs暴力,也就是二进制枚举的思想,也就是枚举所有的情况,这个题目有个很好的剪枝,就是先排序,然后在 这样可以避免答案出现相同的组合。 code: class Solution { public: int p[1000]; vector<vector<int>> ans; vector<int> v 阅读全文
posted @ 2020-09-10 22:15 Target--fly 阅读(160) 评论(0) 推荐(0)

摘要:第一种解法:二维前缀和暴力 维护一个二维的前缀和f[i][j]表示从(1,1)到(i,j)的正方形矩阵的和。f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1] 然后枚举每个点,并假设该点为右下角顶点,然后枚举正方形长度判断满不满足条件即可,条件为:f[i][j]-f[i- 阅读全文
posted @ 2020-09-08 22:27 Target--fly 阅读(606) 评论(0) 推荐(0)

摘要:第一种思路:dp 假设我们考虑到第i个数,如果说这个数是正数,我们希望第i-1个数也是个正数,越大越好,如果说第i个数是个负数,我们希望第i-1个数也是个负数,并且越小越好。 所以应该同时维护两个dp数组,dp1[i]以i结尾的连续元素的最大值,dp2[i]表示以i结尾的连续元素的最小值。 转移方程 阅读全文
posted @ 2020-09-07 14:49 Target--fly 阅读(179) 评论(0) 推荐(0)

摘要:头文件<string>,可以将int,longlong...等等一系列整型浮点型转换为字符串,注意是从C++11开始的。 std::string to_string(int value); (1) (C++11起)std::string to_string(long value); (2) (C++ 阅读全文
posted @ 2020-09-04 20:41 Target--fly 阅读(714) 评论(0) 推荐(0)

摘要:给出一组数: 寻找四元组的个数 (i,j,k,l)其中a[i]=a[k],并且a[j]=a[l] 刚看到这个题的时候想到了记录每个数的个数,然后求前缀和以及后缀和。先枚举i和k,当a[i]和a[k]相等时,在枚举i和k之间的数,然后在将前缀和与后缀和相乘,但是这样复杂度是o(n^3),显然过不了。看 阅读全文
posted @ 2020-09-01 22:24 Target--fly 阅读(229) 评论(0) 推荐(0)

摘要:https://leetcode-cn.com/problems/stone-game/ 定义状态数组:dp[i][j]表示还剩下i~~~j个石子时,当前选手和另一个选手的最大差值。 如果当前选手选第i个,dp[i][j]=nums[i] - dp[i+1][ j ],为什么是这样呢?假设当前选手A 阅读全文
posted @ 2020-09-01 21:29 Target--fly 阅读(238) 评论(0) 推荐(0)