解题模板
Xiao2018428
这个作者很懒,什么都没留下…
展开
-
图算法相关的内容
1.图的相关概念:图可以分为有向图和无向图两种,有向图的所有边都有方向,而无向图的所有边都是双向的。在记录无向图的时候要注意需要记录两次,正向一次,反向一次。 顶点的度是指和该顶点相连的边的条数,对于有向图来说,顶点的出边条数称为该顶点的出度,顶点入边的条数称为该顶点的入度。顶点和边都可以有一定的属性,而量化的属性称为权值,顶点的权值和边的权值分别称为点权和边权。2.图的储存图的储存方...原创 2020-04-23 14:09:01 · 237 阅读 · 0 评论 -
动态规划题型
LeetCode120——三角形的最小路径和给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为11(即,2+3+5+1= 11)。思路:这道题开始想着从上往下来看,但是不是每个节点都有左右父亲...原创 2020-05-15 12:35:02 · 287 阅读 · 0 评论 -
递归与回溯
LeetCode17——电话号码的字母组合题目:给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]思路:第一种方法是采用循环的方式,首先将第一个字...原创 2020-04-19 21:49:25 · 257 阅读 · 0 评论 -
队列和栈的相关算法题
1.LeetCode20——有效的括号题目:给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输...原创 2020-04-18 16:43:28 · 335 阅读 · 0 评论 -
手撕代码注意点
1.除了检查输入的数组名或者指针是否为空指针,还应该检查数组里面的元素是不是满足合适的取值范围。2.如果要求的变量是指针,那么函数的返回值可以是布尔类型,因为指针变量作为形参时会改变实参的值,用bool型返回值表示成功或者失败即可。3.二分查找的典型代码,千万熟悉,别出错。middle的计算要放在whlie循环中。...原创 2019-12-12 22:12:01 · 299 阅读 · 0 评论 -
最长公共子序列(LCS)
问题:给定两个字符串(或者数字序列)A和B,求一个字符串,使得这个字符串是A和B的最长公共部分(子序列可以不连续)。比如: s a d s t o r y 和a d m i n s o r r y的最长公共子序列为adsory,长度为6。思路: 暴力解法的复杂度较高,这里达不到满意效果。这里令dp[i][j]为字符串A的i号位,和字符串B的j号位之前的LCS长度(下标...原创 2019-10-25 10:22:19 · 178 阅读 · 0 评论 -
PAT甲级——Favorite Color Stripe(最长不下降子序列问题)
最长不下降子序列问题(Longest Increasing Sequence,LIS)在一个数字序列中,找到一个最长的子序列(可以不连续),使得这个子序列是不下降(非递减)的。分析: 例如现有序列A={1,2,3,-1,-1,7,9}(下标从1开始),它的最长不下降子序列是 {1,2,3,7,9},长度为5。用枚举的方法是可以求出结果的,但是每个元素选取或者不选取有两种选择...原创 2019-10-24 11:03:42 · 241 阅读 · 0 评论 -
并查集
并查集定义: 并查集是一种维护集合的数据结构,它的名字中“并”“查”“集”分别取自Union(合并)、Find(查找)、Set(集合)这三个单词。它支持两个基本操作——合并:合并两个集合。查找:判断两个元素是否在一个集合。它是由一个数组来实现的,int father[N];其中father[i]表示元素i的父亲结点,而父亲节点本身也是这个集合内的元素。如果father[i]=...原创 2019-10-12 14:43:36 · 132 阅读 · 0 评论 -
PAT甲级考试注意点(更新中)
单个字符,可以用scanf %c的形式来读取,但是千万注意,在用scanf读取字符的时候是可以读入空格和换行符的,那么就需要用getchar来清除多余的空格和换行符。 在建立二叉树的时候,题目给出了结点的编号,这里可以直接用静态的写法来构建二叉树,不需要建立指针。 定义变量的时候要看清楚题意,int和double不能用错(建议小数都用double)。 可以用x=max(x,y)来代替一个if...原创 2019-09-11 15:18:09 · 1630 阅读 · 0 评论 -
二叉树基本操作,二叉树重建
#include <iostream>#include<queue>using namespace std;//二叉树储存struct node { int data; int layer;//层序遍历计算层次 node* lchild; node* rchild;};//生成一个新的结点,v为权值node* newNode(int v){ ...原创 2019-09-11 10:15:48 · 179 阅读 · 0 评论