Cosmos Tan
无冥冥之志者,无昭昭之明。
无惛惛之事者,无赫赫之功。
展开
-
二叉树之后序遍历(迭代法)
题源:https://leetcode-cn.com/problems/binary-tree-postorder-traversal/一、原始代码:class Solution {public: vector<int> postorderTraversal(TreeNode* root) { vector<int> res; sta...原创 2020-04-17 14:38:19 · 650 阅读 · 1 评论 -
二叉树的直径以及高度、深度、层数等概念
1、题源:https://leetcode-cn.com/problems/diameter-of-binary-tree/2、初始代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL)原创 2020-05-31 19:52:19 · 2917 阅读 · 0 评论 -
二叉树平衡、深度、路径
*一*递归主要考虑问题:1、返回值2、一次递归的具体操作3、边界条件*二*递归的进阶:1、利用return语句,实现特殊判断条件(问题的某种情况,可直接判断整体的是和否)下:阻隔中断(起到剪枝的作用)2、构造自定义类型。可以在return语句中利用自定义类型,实现信息的高度集合,返回语句包含多种信息。一、高度平衡二叉树的判断:题源:LeetCode 110:htt...原创 2020-05-03 00:55:15 · 267 阅读 · 0 评论 -
二叉树之两颗树相同或对称的判断实现
一、判断相同树题源:LeetCode100:https://leetcode-cn.com/problems/same-tree思路:递归简单,但是要注意递归的边界问题和恰当使用return语句。至于迭代,看判断镜像对称的二叉树那段代码吧。1、初始代码:/** * Definition for a binary tree node. * struct TreeNode { ...原创 2020-04-26 16:26:19 · 262 阅读 · 0 评论 -
二叉树之N叉树的前序、后序以及层次遍历(迭代实现)
前言: N叉树的前序、和后序遍历的迭代实现与二叉树相似。首先根据遍历的特性,判断使用stack还是queue。 N叉树的后序遍历,也可由其前序遍历的结果翻转后得到,只不过在孩子结点入栈是,是从左到右依次入栈。一、N叉树的前序遍历题源:https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal//...原创 2020-04-21 09:46:08 · 331 阅读 · 0 评论 -
二叉树的前序、中序、后序遍历的迭代实现总结以及层次遍历
非递归的方法:主要考虑什么时候输出;关键点:(1)前序入栈就输出,中序出栈在输出,后续需要访问第二次,出栈在输出。while(cur != NULL) {stack.push(cur);vec.push_back(cur->val);cur = cur->left;}(2)cur = cur->right; 无需判断右子树空与否作者:wang-mu-mu-1...原创 2020-04-17 14:40:32 · 261 阅读 · 0 评论 -
二叉树之前序遍历(迭代法)
题源:https://leetcode-cn.com/problems/binary-tree-preorder-traversal/solution/一、初始代码:class Solution {public: vector<int> preorderTraversal(TreeNode* root) { stack<TreeNode*>...原创 2020-04-17 13:22:24 · 435 阅读 · 0 评论 -
二叉树之中序遍历(迭代)
题源:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/一、初始代码class Solution {public: vector<int> inorderTraversal(TreeNode* root) { stack<TreeNode*> s; ...原创 2020-04-17 00:53:05 · 235 阅读 · 0 评论 -
二叉树的层次遍历
题源:https://leetcode-cn.com/problems/average-of-levels-in-binary-tree/solution/一、初始代码:class Solution {public: vector<double> averageOfLevels(TreeNode* root) { queue<TreeNode*...原创 2020-04-15 23:36:04 · 207 阅读 · 0 评论 -
C++STL常用容器的操作
queue 的基本操作举例如下:queue入队,如例:q.push(x); 将x 接到队列的末端。queue出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。访问queue队首元素,如例:q.front(),即最早被压入队列的元素。访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。判断queue队列空,如例:q.em...原创 2020-04-16 01:06:30 · 229 阅读 · 0 评论 -
数据结构>00 _二叉树练习之平衡二叉树
题源:https://leetcode-cn.com/problems/ping-heng-er-cha-shu-lcof/submissions/初始代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNod...原创 2020-04-16 01:08:16 · 351 阅读 · 0 评论 -
动态规划之hd1159
参考博文:https://www.cnblogs.com/sasuke-/p/5396843.html#include <iostream>#include <fstream>#include <cstdio>#include <cmath>#include <map>#include <set>#inclu...原创 2019-03-25 23:11:45 · 233 阅读 · 0 评论 -
杭电2081之scanf(),getchar()及gets()比较
参考1:https://blog.youkuaiyun.com/BBHHTT/article/details/75671653 ;参考2:https://blog.youkuaiyun.com/c_base_jin/article/details/24120251scanf()详细简介参考:https://blog.youkuaiyun.com/p312011150/article/details/78866884三者都是...原创 2019-01-16 22:17:58 · 307 阅读 · 0 评论 -
杭电2072
问题里有“文章里不重复的单词数”——————>set。C++STL参考:https://blog.youkuaiyun.com/u012860063/article/details/24435211在读取时需要getline(cin,line) 参考:https://blog.youkuaiyun.com/duan19920101/article/details/50782816 C++标准IO数据库参考...原创 2019-01-13 15:05:42 · 430 阅读 · 0 评论 -
大数加法之杭电1047
#include<stdio.h>#include<string.h>#define M 110int num[M]={0};void add(char s[]){ int i,j,num1[M]={0}; int len=strlen(s); for(i=len-1,j=0;i>=0;i--) num1[j++]=s[i]-'0'; for(i...原创 2018-03-30 21:26:55 · 342 阅读 · 0 评论 -
大数加法之杭电1002
#include<stdio.h>#include<string.h>#define M 1005void add(char s1[],char s2[]){ int i,j,num1[M]={0},num2[M]={0}; int len1=strlen(s1),len2=strlen(s2); for(i=len1-1,j=0;i>=0;i--) ...原创 2018-03-27 23:00:28 · 234 阅读 · 0 评论 -
并查集之hd1213
#include<stdio.h>#define M 1005int a[M];void init(int n){ int i=0; for(i=1;i<=n;i++) a[i]=i;}int find(int x){ int r=x; while(a[r]!=r) r=a[r]; return r;}void joint(int...原创 2018-04-05 17:59:42 · 249 阅读 · 0 评论 -
0-1背包之hd2602
#include<stdio.h>#include<string.h>long V[1005][1005];long w[1005],v[1005];void FindMax(long x,long y){ int i,j; for(i=1;i<=x;i++) { for(j=0;j<=y;j++) { if(j<v...原创 2018-04-20 21:12:11 · 267 阅读 · 0 评论 -
动态规划之杭电1087
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#define M 1005int str[M],P[M];using namespace std;int main(){ int T; ...原创 2018-05-03 22:12:08 · 257 阅读 · 0 评论 -
动态规划最大子序列之hd1003
#include<iostream>#include<cstdio>using namespace std;int main(){ int t,n,a,cot=1; scanf("%d",&t); while(t--) { scanf("%d",&n); int i,temp=1,ans...原创 2018-05-16 09:54:41 · 377 阅读 · 0 评论 -
大数乘法之杭电1042
感觉不仅把改进的代码和思考也记录下来,同时也要把自己目前还是渣渣的原生代码才有所收获和进步。#include<stdio.h>#include<string.h>#define M 400 int num[M]={0};int chan(int a[5],int b){ int i; for(i=0;;i++) { a[i]=b/10; b...原创 2018-03-31 13:34:06 · 402 阅读 · 0 评论