自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hebtu666

少说,多做。

  • 博客(35)
  • 收藏
  • 关注

原创 贪吃蛇js

python都学不懂,c++又不会,只能写写js来维持生活了。555555js:window.onload = function() { var wrap = document.getElementsByClassName("wrap")[0]; var uls = document.getElementsByClassName("sbody")[0]; var hand = do...

2018-10-31 16:42:02 4183

原创 「假装努力」

有多少人在「假装努力」?又有多少人在「真正成长」?再努力努力回想起当年毕业后,在北京和室友合租的日子。 那时,我在工作,室友在培训。一天,我下班回来,听见他在电话里和家人争吵,原因就是他母亲说了一句:“有没有在好好看书啊?别给家里浪费钱呀。”室友火气被点燃,吵了起来,对着电话吼到:“你知道我每天看书都到很晚吗?我这么努力,你根本看不到,只知道埋怨我。”挂了电话,室友气哼哼的...

2018-10-30 11:07:27 4043 4

转载 为什么Python中整型不会溢出

前言本次分析基于 CPython 解释器,python3.x版本在python2时代,整型有 int 类型和 long 长整型,长整型不存在溢出问题,即可以存放任意大小的整数。在python3后,统一使用了长整型。这也是吸引科研人员的一部分了,适合大数据运算,不会溢出,也不会有其他语言那样还分短整型,整型,长整型...因此python就降低其他行业的学习门槛了。那么,不溢出的整型实现上...

2018-10-30 11:04:15 13154 145

原创 后缀树/后缀数组

字典树:https://blog.csdn.net/hebtu666/article/details/83141560后缀树:后缀树,就是把一串字符的所有后缀保存并且压缩的字典树。 相对于字典树来说,后缀树并不是针对大量字符串的,而是针对一个或几个字符串来解决问题。比如字符串的回文子串,两个字符串的最长公共子串等等。比如单词banana,它的所有后缀显示到下面的。0代表从第一个字符...

2018-10-29 21:42:56 3947

原创 map+DP leetcode446

 如果数字序列由至少三个元素组成并且任何两个连续元素之间的差异相同,则称为算术序列。例如,这些是算术序列:1,3,5,7,9 7,7,7,7 3,-1,-5,-9 以下序列是不算术。1, 1, 2, 5, 7给出了由N个数组成的零索引数组A. 该阵列的子序列切片是任何整数序列(P0,P1,...,Pk),使得0≤P0<P1 <... <Pk <N。...

2018-10-29 16:04:19 4795 25

原创 串的定长表示

思想和代码都不难,和线性表也差不多,串本来就是数据受限的线性表。串连接: #include <stdio.h>#include <string.h>//串的定长顺序存储表示#define MAXSTRLEN 255 //用户可在255以内定义最大串长typedef unsigned char SString[MAXSTRLEN + ...

2018-10-29 15:05:58 3682 22

原创 AC自动机

今天写一下基本的AC自动机的思想原理和实现。Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配算法的基础知识。KMP:https://blog.csdn.net/hebt...

2018-10-27 10:24:28 4285

原创 数据结构课上笔记7

介绍栈和队列基本概念和用法。 设输入序列1、2、3、4,则下述序列中( )不可能是出栈序列。【中科院中国科技大学2005】A. 1、2、3、4                      B. 4、 3、2、1C. 1、3、4、2                      D.4、1、2、3选D我是一个个模拟来做的。 描述栈的基本型性质:1、集合性:栈是由若干...

2018-10-26 14:28:53 4428

原创 数组基操三连(2)

转圈打印矩阵题目:给定一个整型矩阵matrix,请按照转圈的方式打印它。例如:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,打印结果为:1,2,3,4,5,12,16,15,14,13,9,5,6,7,11,10要求:额外空间复杂度为O(1)思路:矩阵分圈处理。在矩阵中用左上角的坐标(tR,tC)和右下角的坐标(dR,dC)就可以表示一个...

2018-10-25 16:02:22 8781 20

原创 堆应用例题三连

一个数据流中,随时可以取得中位数。题目描述:有一个源源不断地吐出整数的数据流,假设你有足够的空间来保存吐出的数。请设计一个名叫MedianHolder的结构,MedianHolder可以随时取得之前吐出所有树的中位数。要求:1.如果MedianHolder已经保存了吐出的N个数,那么任意时刻将一个新的数加入到MedianHolder的过程中,时间复杂度O(logN)。2.取得已经...

2018-10-25 15:56:12 3596

原创 前缀树

是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。字典树又称为前缀树或Trie树,是处理字符串常见的数据结构。假设组成所有单词的字符仅是“a”~"z",请实现字典树结构,并包含以下四个主要功能:void insert(...

2018-10-18 10:24:12 4312

转载 java整体打印二叉树

一个调的很好的打印二叉树的代码。用空格和^v来表示节点之间的关系。效果是这样:Binary Tree:                                         v7v                               v6v                                                ^5^          ...

2018-10-17 10:15:15 3422

原创 morris遍历

通常,实现二叉树的前序(preorder)、中序(inorder)、后序(postorder)遍历有两个常用的方法:一是递归(recursive),二是使用栈实现的迭代版本(stack+iterative)。这两种方法都是O(n)的空间复杂度(递归本身占用stack空间或者用户自定义的stack)。本文介绍空间O(1)的遍历方法。上次文章讲到,我们经典递归遍历其实有三次访问当前节点的机会,...

2018-10-17 10:02:48 3791 2

原创 BFPRT

在一大堆数中求其前k大或前k小的问题,简称TOP-K问题。而目前解决TOP-K问题最有效的算法即是BFPRT算法,其又称为中位数的中位数算法,该算法由Blum、Floyd、Pratt、Rivest、Tarjan提出,最坏时间复杂度为O(n)O(n)。读者要会快速排序相关知识,如果不会请看这里:https://blog.csdn.net/hebtu666/article/details/81...

2018-10-16 13:55:54 9092 62

原创 简单迷宫问题

迷宫实验是取自心理学的一个古典实验。在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒子中设置了许多墙,对行进方向形成了多处阻挡。盒子仅有一个出口,在出口处放置一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。对同一只老鼠重复进行上述实验,一直到老鼠从入口到出口,而不走错一步。老鼠经过多次试验终于得到它学习走通迷宫的路线。设计一个计算机程序对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路...

2018-10-15 20:19:03 4670 55

原创 借汉诺塔理解栈与递归

我们先说,在一个函数中,调用另一个函数。首先,要意识到,函数中的代码和平常所写代码一样,也都是要执行完的,只有执行完代码,或者遇到return,才会停止。那么,我们在函数中调用函数,执行完了,就会重新回到本函数中,继续向下执行,直到结束。在执行其它函数时,本函数相当于中断了,不执行了。那我们重新回来的时候,要从刚才暂停的地方开始,继续执行,这期间,所有现场信息都要原封不动,就相当于时间...

2018-10-14 19:43:42 3742 29

原创 表达式求值

今天把表达式求值给搞定吧。 问题:给你个表达式,有加减乘除和小括号,让算出结果。我们假定计算式是正确的,并且不会出现除数为0等错误。py大法好啊,在保证可读性的前提下能压到一共就三十多行代码。其实能压到不到三十行,但是代码就不好看了。。。。计算函数:def getvalue(a, b, op): if op == "+":return a+b elif...

2018-10-13 15:46:42 3554 29

原创 括号匹配

栈的应用,括号匹配。经典做法是,遇左括号压入,遇右括号判断,和栈顶配对就继续,不配对或者栈空就错了。最后判断是否为空。代码有些麻烦。 我是遇左括号压对应的右括号,最后判断代码就会很简单:相等即可。class Solution {public: bool isValid(string s) { int len=s.size(); sta...

2018-10-13 09:58:37 3405 38

原创 python学习实例(7)

#=========================================================#第8章 信息安全(Information Security)的python程序#=========================================================#====================#8.3 措施和技术#=====...

2018-10-12 12:40:49 3298 38

原创 python学习实例(6)

#=============================#6.6 文件系统(File System)#=============================#+++++++++++++++++++++++++++++#6.6.3 Python中的文件操作#+++++++++++++++++++++++++++++#<程序:读取文件os.py>f = open...

2018-10-12 12:39:43 3240 27

原创 python学习实例(5)

#============================================#5.1 计算思维是什么#============================================#<程序: 找假币的第一种方法> by Edwin Shadef findcoin_1(L): if len(L) <=1: print("E...

2018-10-12 12:38:28 4752 33

原创 python学习实例(4)

#=========================================#第四章的python程序#=========================================#=========================================#4.1 简洁的Python#=======================================...

2018-10-12 12:37:35 5508 36

原创 python学习实例(3)

#===================================#3.4 关于Python的函数调用#===================================#+++++++++++++++++++++++++++++++++++#3.4.2 Python函数入门#+++++++++++++++++++++++++++++++++++#<程序:计算4+...

2018-10-12 12:36:23 3626 28

原创 python学习实例(2)

#===================================#2.2 不同进制间的转换#===================================#+++++++++++++++++++++++++++++++++++#2.2.1. 二进制数转换为十进制数#+++++++++++++++++++++++++++++++++++#<程序:2-to-1...

2018-10-12 12:35:31 3801 32

原创 python学习实例(1)

#======================================#1.2 计算机编程的基本概念#======================================#++++++++++++++++++++++++++++++++++++++#1.2.2 从Python语言进入计算机语言的世界#++++++++++++++++++++++++++++++++++...

2018-10-12 12:34:23 5093 29

原创 链表实现栈

栈,是操作受限的线性表,只能在一端进行插入删除。其实就是带尾指针的链表,尾插#include <stdio.h>#include <stdlib.h>#define OK 1#define ERROR 0#define Status int#define SElemType int//只在头部进行插入和删除(不带头结点)typedef struct ...

2018-10-12 12:30:45 3556 32

原创 单调队列优化的背包问题

对于背包问题,经典的背包九讲已经讲的很明白了,本来就不打算写这方面问题了。但是吧。我发现,那个最出名的九讲竟然没写队列优化的背包。。。。那我必须写一下咯嘿嘿,这么好的思想。我们回顾一下背包问题吧。01背包问题题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总...

2018-10-12 12:18:41 11448 106

原创 双栈

利用栈底位置相对不变的特性,可以让两个顺序栈共享一个空间。具体实现方法大概有两种:一种是奇偶栈,就是所有下标为奇数的是一个栈,偶数是另一个栈。但是这样一个栈的最大存储就确定了,并没有起到互补空缺的作用,我们实现了也就没有太大意义。还有一种就是,栈底分别设在数组的头和尾。进栈往中间进就可以了。这样,整个数组存满了才会真的栈满。 那我们直接开始代码实现 首先定义结构体:...

2018-10-11 13:46:24 6375 21

转载 链表相交问题

本来想自己写,写了一半发现一篇文章,解释写得简单易懂,我就直接拿过来了。这个问题值得反复地写,锻炼链表coding能力的好题。  //如果两个链表都不带环int NotCycleCheckCross(pLinkNode head1,pLinkNode head2){ pLinkNode list1 = head1->next; pLinkNode l...

2018-10-10 13:01:16 3634

原创 线性表表示集合

集合我们高中都学过吧?最重要的几个特点:元素不能重复、各个元素之间没有关系、没有顺序集合内的元素可以是单元素或者是集合。对集合的操作:交集并集差集等,还有对自身的加减等。需要频繁的加减元素,所以顺序存储效率较低,但是我们还是说一下是怎么实现的:    用01向量表示集合,因为现实中任何一个有穷集合都能对应到一个0、1、2.....n这么一个序列中。所以可以对应过来,每位的01代...

2018-10-10 11:09:55 4242

原创 链表排序-归并

链表排序,可以插入排序,我就不写了。实现归并排序归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 归并操作的工作原理如下:第一步:申请空间,使其大...

2018-10-09 16:48:58 3116

原创 线性表实现一元多项式操作

 数组存放:不需要记录幂,下标就是。比如1,2,3,5表示1+2x+3x^2+5x^3有了思路,我们很容易定义结构typedef struct node{ float * coef;//系数数组 int maxSize;//最大容量 int order;//最高阶数}Polynomial;先实现求和:我们想求两个式子a+b,结果存在c中。逻辑...

2018-10-09 16:34:19 5655

原创 约瑟夫环-(数组、循环链表、数学)

约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 约瑟夫环运作如下:1、一群人围在一起坐成环状(如:N)2、从某个编号开始报数(如:S)3、数到某个数(如:M)的时候,此人出列,下...

2018-10-09 14:42:36 5370 2

原创 单链表不带头标准c语言实现

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一...

2018-10-09 12:58:40 4837 42

原创 顺序存储线性表实现

在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素,称作线性表的顺序存储结构。 顺序存储结构的主要优点是节省存储空间,因为分配给数据的存储单元全用存放结点的数据(不考虑c/c++语言中数组需指定大小的情况),结点之间的逻辑关系没有占用额外的存储空间。采用这种方法时,可实现对结点的随机存取,即每一个结点对应一个序号,由该序号可以直接计算出来结点的存储地址。但顺序存储方法的主要缺点...

2018-10-08 21:15:35 4363 22

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除