算法
Wilson_Liu257
以博客平台交流学习,强化自身和行业领域能力
展开
-
洛谷日记 Day 1
简单模拟Question 1:铺地毯题目描述:为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有nn张地毯,编号从11到nn。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界...原创 2019-07-01 20:25:42 · 157 阅读 · 0 评论 -
leetcode 144周赛 删点成林
看题点击这里 这题思路是主要是后序遍历二叉树,需要注意的是在后序遍历(时间复杂度为)的时候将当前结点的父节点也要当作参数传入,如果没有就置为NULL,在遍历的过程中检查当前结点的val是不是在待删除的结点中。因为题中说明了树上每个节点都有一个不同的值都不一样,我先使用set集合将待删除的结点的val存储其中,时间复杂度为;再特判一下根节点是否在待删除的元素中若果要删除根节点,那么...原创 2019-07-07 13:20:01 · 418 阅读 · 0 评论 -
先序求二叉树
P1030 先序求二叉树题的意思也比较好理解,就是给出中序和后序遍历的次序,让你输出树的前序遍历的次序。科普区树的结点构造struct node{ int val; node *left; node *right;};node *root;树的前序遍历从根节点开始,按找先访问父母结点,再访问左子树和右子树的顺序规则,一直遍历到空结点就结束当前子树的遍历。...原创 2019-07-07 10:07:41 · 242 阅读 · 0 评论 -
快速幂
俏皮小可爱请点击这里快速幂的模板代码题主要涉及知识点是位运算中的”&“和”>>="这两种运算。&1:任意一个数a&1,如果这个数为奇数,则结果为1,偶数则为0。 >>=k:对任意一个数按二进制位(计算机内部存储)想右移动k位,按位补0,即低位相右移动k位,高位不足部分用0补充。下面直接沾代码:#include<bits/std...原创 2019-07-06 22:39:11 · 130 阅读 · 0 评论 -
洛谷日记 Day 6
洛谷P1160 队列安排思路解析这题涉及大量的插入、删除操作,一开始想使用简单的数组模拟,但是后面涉及插入和删除操作,就彻底放弃了这个念头,于是乎决定使用双端循环链表去解决这题。需要注意的是文中提及到的front指针和front结点;next指针和next结点的区别,这里提一下,在下面的阅读中请注意区别。front结点和front指针的区别:是指当前某一节点k的指向的前一个结点,具...原创 2019-07-06 22:12:01 · 177 阅读 · 0 评论 -
c++ 大整数加法、减法、乘法
大整数加法、大整数减法、大整数乘法、大整数除法(还未写)大整数的加法:先对数据进行预处理是两个大整数的位数相等,位数少的那个数在高位补0,使两数的位数相等,便于计算数据的进位,只需要在函数调用的结尾检查一下最高为是否存在进位的情况,如果需要进位则只需要在最后将进位的数加入到返回值中。加法是对两个数从低位向高为相加,对每次相加的值,计算进位,取模加入到当前位置。大整数减法:函数先对两个相等的...原创 2019-07-11 21:39:18 · 2709 阅读 · 1 评论 -
KMP字符串匹配算法
哇哇哇!好难受,写了两个多小时,才通过全部样例。洛谷P1308科普区(国内,国外)在计算机科学中,Knuth-Morris-Pratt字符串查找算法(简称为KMP算法)可在一个主文本字符串S内查找一个词W的出现位置。此算法通过运用对这个词在不匹配时本身就包含足够的信息来确定下一个匹配将在哪里开始的发现,从而避免重新检查先前匹配的字符。这个算法是由高德纳和沃恩·普拉特在1974年构思,同...原创 2019-07-10 20:28:07 · 143 阅读 · 0 评论 -
洛谷日记 Day 2
昨天晚上太忙碌了,忘写了,今天补发P1309 瑞士轮题干:题目背景在双人对决的竞技性比赛,如乒乓球、羽毛球、国际象棋中,最常见的赛制是淘汰赛和循环赛。前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高。后者的特点是较为公平,偶然性较低,但比赛过程往往十分冗长。本题中介绍的瑞士轮赛制,因最早使用于18951895年在瑞士举办的国际象棋比赛而得名。它可以看作是淘汰赛与循环赛的折中...原创 2019-07-03 21:14:48 · 169 阅读 · 0 评论 -
线段树
科普区(国内,国外)线段树(英语:Segment tree)是一种二叉树形数据结构,1977年由Jon Louis Bentley发明[1],用以存储区间或线段,并且允许快速查询结构内包含某一点的所有区间。一个包含{个区间的线段树,空间复杂度为,查询的时间复杂度则为,其中是匹配条件的区间数量。此数据结构亦可推广到高维度。(摘自维基百科)个人总结线段树是一棵平衡二叉搜索树,是一...原创 2019-07-09 17:28:41 · 437 阅读 · 0 评论 -
洛谷日记 Day 7 P1087 FBI树
我在这儿哟(溜~~)个人见解狗题!狗题!狗题!真的是坑!(好了,蒟蒻发泄完了。)这题其实还是二叉树的后序遍历,但是蒟蒻的我拿到题是蒙的,什么,要不要拨打。唉难受。仔细看了下题,大概意思就是说给一个定长的字符串,然后迭代切割一半,直到传长为1。其中全0的构成的树称为树,全1构成的树称为树,既有0又有1的树称为树。让输出这棵树的后序遍历结果。我的做法其实也是蛮简单的,就是构造一个带...原创 2019-07-07 16:38:41 · 137 阅读 · 0 评论 -
leetcode 144周赛 航班预定统计
看题点这里哦这题是线段树(点这里,大佬讲线段树)的模板题,也比较简单,看到排行榜上的大佬几分钟就给撸出来了,我深感惭愧。以后再接再厉!!!题目题解在给定的区间中算区间内每个点的数据。其实只需要开辟一个数组统计每次预定的航班区间和机票数量,最有一次遍历数组将结果添加进容器中返回即可。来人上代码class Solution { private: const int M...原创 2019-07-07 13:43:34 · 545 阅读 · 0 评论