![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
zzzmj_
NYOJ主页
https://acm.nyist.edu.cn/JudgeOnline/profile.php?userid=Leida_%E6%9C%B1%E6%A8%A1%E5%81%A5
展开
-
求最大公约数(辗转相除法)
求最大公约数(辗转相除法)一个很神奇的算法,假设有两个数,一个数是m = 255,一个是n = 75,找他们两的最大公约数算法思想 用较小数除较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止,最后的除数就是这两个数的最大公约数可能看起来有点绕,实际操作看看 m n m%n(余数) 255 75 30 7原创 2017-12-13 20:18:39 · 266 阅读 · 0 评论 -
翻转一个单链表
1. 题目翻转一个链表2. 思路涉及三个节点的关系 前一节点,当前节点,下一节点打比方说是A -> B -> C此时想要变成A <- B <- C显而易见,直觉会很容易想到让B->next 去指向A但直觉有时候往往容易出错,如果第一步就让B->next去指向A,那么就会丢失B与C之间的联系所以在让B指向A之前,我们必须先保存好C节点地址然...原创 2019-09-10 22:00:17 · 161 阅读 · 0 评论 -
NYOJ756 重建二叉树
题目描述: 给你一颗二叉树的后序序列和中序序列, 求它的前序序列;样例输入: ACBFGED ABCDEFG样例输出: DBACEGF分析:先复习一下前序遍历, 中序遍历, 后序遍历的次序前序遍历:1.访问根节点。2.访问左子树。3.访问右子树 中序遍历:1.访问左子树。2.访问根节点。3.访问右子树 后序遍历:1.访问左子树。2.访问右子树。3.访...原创 2018-03-13 21:24:30 · 161 阅读 · 0 评论 -
最小生成树图文详解(Prim算法)
最小生成树就像几个村庄都不相通, 要修路, 怎么修, 这个花的钱最少, 这种最优选择就是最小生成树设G = (V, E)是无向连通图(V是结点集, E是边集),相对于村庄例子,V就是那些村庄的集合,E就是村庄之间路的集合设T = (U, TE)是最小生成树, U是结点集,TE是边集Prim算法的思想首先在V集合中任意选择一个村庄作为起始点i,将i点并入U集合中,然后在找一...原创 2018-03-06 23:27:38 · 2126 阅读 · 0 评论 -
L2-1 链表去重
1. 题目给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉。即对每个键值 K,只有第一个绝对值等于 K 的结点被保留。同时,所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15,你需要输出去重后的链表 21→-15→-7,还有被删除的链表 -15→15。输入格式:输入在第一行给出 L 的第一个结点的地址和一个正整数 N(≤105 ...原创 2019-03-27 11:45:23 · 405 阅读 · 0 评论 -
链表中倒数第k个结点
1. 题目在一个链表,输出该链表中倒数第k个结点。2. 思路可能比较常见的做法是,用一个数组保存链表中的节点,遍历一遍链表,然后输出数组倒数第k个结点function FindKthToTail(head, k) { var tmp = [] while(head) { tmp.push(head) head = head.next ...原创 2019-09-10 21:50:30 · 128 阅读 · 0 评论 -
从哈希表到MD5摘要算法
1. 散列表是什么?定义,摘选自维基百科。散列表(Hash Table)也叫哈希表。是根据键(Key)而直接访问在内存存储位置的数据结构它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。2. 一个例子通过一个简单的例子解释一下。老师统计班上同学的成绩,想要把每个分数的人数统计一下,也就...原创 2019-08-04 17:05:10 · 373 阅读 · 0 评论 -
2017年天梯赛大区赛题集 古风排版
5-7中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。输入格式:输入在第一行给出一个正整数NN(<100<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。输出格式:按古风格式排版给定的字符串,每列NN个字符(除了最后一列可能不足NN个)。输入样例:4This is a test c...原创 2017-03-31 22:10:52 · 1105 阅读 · 0 评论 -
欧拉函数及其计算
欧拉函数1. 定义什么是欧拉函数?任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?(比如,在1到8之中,有多少个数与8构成互质关系?)计算这个值的方法就叫做欧拉函数,用φ(n)表示。在1到8之中,与8形成互质关系的是1、3、5、7,所以 φ(n) = 4。2. 计算欧拉函数计算公式这个p是什么呢?一个正整数 n 可以通过分解质因数得到例如n = ...原创 2019-01-22 21:06:11 · 45090 阅读 · 2 评论 -
递归解决最长公共子序列问题(LCS)
前言写在前面,这篇文章是我大一的时候写的,质量比较差,没想到还是被挺多人看到了,有上千的阅读量,说实话有点内疚~~,因为之前写的太差了,看了我文章可能对这个问题更不清楚了。抱着不能坑别人的想法,我重新编辑了一下文章,希望还是能帮到大家的。其实用递归解决最长公共子序列是不好的,网上最多的方法应该是用动态规划解这个问题,动态规划解这个问题确实优秀很多,但动态规划理解起来是有难度的,我建...原创 2017-06-10 22:41:56 · 7162 阅读 · 4 评论 -
STL常用容器,以及一些函数
lower_bound() lower_bound(a, a+n, x);//a是数组,n是长度 查找“大于或者等于x的第一个位置”isalpha(ch): 判断字符ch是否是英文字母,若是字母返回非0,若不是字母返回0tolower(ch) 把ch字符转换为小写,如果不是字母字符则不做处理tolopper(ch) 把ch字符转换为大写,如果不是字母字符则不...原创 2018-03-06 19:39:02 · 170 阅读 · 0 评论 -
SQL server基础
SQL中最重要的 DDL 语句:- CREATE DATABASE - 创建数据库- ALTER DATABASE - 修改数据库- CREATE TABLE - 创建新表- ALTER TABLE - 改变数据库表- DROP TABLE - 删除表- CREATE INDEX - 创建索引(搜索键)- DROP INDEX - 删除索引SQL SELECT语句 用于查询基本语法原创 2017-12-16 22:17:23 · 166 阅读 · 0 评论 -
最常用的排序:快速排序算法
快速排序(QuickSort)是一种很高效的排序算法,但实际操作过程中不容易写出十分正确具有健壮性的代码,所以我想讲清这个问题,也能使自己理解更加深刻算法思想 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。算法的代码我参考了阿哈磊的代码:ht原创 2017-12-13 21:17:47 · 658 阅读 · 2 评论 -
判断一棵树是否是另一颗树的子结构
1. 题目输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)2. 思路注意是B是A的子结构,并不是子树也就有可能是,A是一颗很大的树,B只是中间一部分树的结构所以要做的事情就两件遍历A树,将A树每个节点与B树比较判断A是否是B的结构(根节点相同)代码var compare = (p1, p2) => { // 如果p2遍历...原创 2019-09-11 19:00:59 · 408 阅读 · 0 评论