自定义博客皮肤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

少说,多做。

  • 博客(34)
  • 论坛 (1)
  • 收藏
  • 关注

原创 17校招真题题集(3)11-15

注:本系列题目全是按照通过率降序来排列的,基本保证题目难度递增。 11、题目名称:买苹果来源:网易题目描述小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。输入描述:输入一个整数n,表示小易想购买n(1 ≤ ...

2018-09-30 15:05:09 705

原创 数据结构课上笔记6

本节课介绍了单链表的操作实现细节,介绍了静态链表。 链表带头的作用:对链表进行操作时,可以对空表、非空表的情况以及 对首元结点进行统一处理,编程更方便。下面给出带头的单链表实现思路: 按下标查找:判断非法输入,当 1 < =i <= n 时,i 的值是合法的。p = L -> next; j = 1;while ( p && j &...

2018-09-29 10:05:53 1012

原创 17校招真题题集(2)6-10

注:本系列题目全是按照通过率降序来排列的,基本保证题目难度递增。 6、题目名称:Fibonacci数列来源:网易题目描述Fibonacci数列是这样定义的:F[0] = 0F[1] = 1for each i ≥ 2: F[i] = F[i-1] + F[i-2]因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibo...

2018-09-28 14:40:47 818

原创 17校招真题题集(1)1-5

注:本系列题目全是按照通过率降序来排列的,基本保证题目难度递增。 1、题目名称:游戏任务标记来源:腾讯题目描述游戏里面有很多各式各样的任务,其中有一种任务玩家只能做一次,这类任务一共有1024个,任务ID范围[1,1024]。请用32个unsigned int类型来记录着1024个任务是否已经完成。初始状态都是未完成。 输入两个参数,都是任务ID,需要设置第一个ID的任务为...

2018-09-28 10:54:55 874

转载 c语言知识体系

原文:https://blog.csdn.net/lf_2016/article/details/80126296#comments 

2018-09-27 13:56:54 1610

原创 链表实现队列

这次写的还算正规,稍微压缩了一下代码,但是不影响阅读画个图帮助理解:F->0->0->0<-R第一个0不存数据  #include<stdio.h>#include<malloc.h>#include<stdlib.h>typedef int Elementype;//数据类型//节点结构typedef s...

2018-09-27 10:19:17 1360

原创 二叉树遍历

二叉树:二叉树是每个节点最多有两个子树的树结构。 本文介绍二叉树的遍历相关知识。我们学过的基本遍历方法,无非那么几个:前序,中序,后序,还有按层遍历等等。设L、D、R分别表示遍历左子树、访问根结点和遍历右子树, 则对一棵二叉树的遍历有三种情况:DLR(称为先根次序遍历),LDR(称为中根次序遍历),LRD (称为后根次序遍历)。首先我们定义一颗二叉树typedef cha...

2018-09-26 20:09:01 4310 1

原创 二叉树概述

各种实现和应用以后放链接一、二叉树的基本概念二叉树:二叉树是每个节点最多有两个子树的树结构。根节点:一棵树最上面的节点称为根节点。父节点、子节点:如果一个节点下面连接多个节点,那么该节点称为父节点,它下面的节点称为子 节点。叶子节点:没有任何子节点的节点称为叶子节点。兄弟节点:具有相同父节点的节点互称为兄弟节点。节点度:节点拥有的子树数。上图中,13的度为2,46的...

2018-09-26 15:08:35 1174 1

原创 并查集入门三连:HDU1213 POJ1611 POJ2236

HDU1213http://acm.hdu.edu.cn/showproblem.php?pid=1213问题描述今天是伊格纳修斯的生日。他邀请了很多朋友。现在是晚餐时间。伊格纳修斯想知道他至少需要多少桌子。你必须注意到并非所有的朋友都互相认识,而且所有的朋友都不想和陌生人呆在一起。这个问题的一个重要规则是,如果我告诉你A知道B,B知道C,那意味着A,B,C彼此了解,所以他们可以留在...

2018-09-25 16:02:06 1151

原创 数据结构课上笔记5

介绍了链表和基本操作用一组物理位置任意的存储单元来存放线性表的数据元素。 这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。因此,链表中元素的逻辑次序和 物理次序不一定相同。 定义:typedef struct Lnode{ //声明结点的类型和指向结点的指针类型 ElemType da...

2018-09-25 10:04:16 1308

原创 KMP+DP1

Description求一个字符串的所有前缀在串中出现的次数之和Input多组用例,每组用例占一行为一个长度不超过100000的字符串,以文件尾结束输入Output对于每组用例,输出该字符串的所有前缀在串中出现的次数之和,结果模256Sample InputaaaababSample Output66Solution首先我们知道next数组中next[i]...

2018-09-20 17:08:40 909

原创 数据结构作业1 讲解和拓展

原题来自雪梨教育http://www.edu2act.net/task/list/checked/题后给出讲解和扩展任务1_1 比较下列算法的时间复杂度任务描述:    下面给出4个算法,请分析下列各算法的时间复杂度,请写清楚题号,并将每个小题的分析过程写出来,并给出分析结果。(1)for(i = 1; i <= n; i++) scanf("%d", &am...

2018-09-20 16:35:57 4744 50

原创 双链表实现

以前写的不带头的单链表实现,当时也啥也没学,好多东西不知道,加上一心想压缩代码,减少情况,所以写得不太好。请教了老师,首先是命名问题和代码紧凑性等的改进。还有可读性方面的改进,多写了一些注释。并且因为带头的比较好写,好操作,所以标准写法也不是很长,繁琐。  下面贴代码#include <stdio.h>#include <stdlib.h>#inc...

2018-09-20 11:50:51 1295

原创 栈的排序

  一个栈中元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈。除此之外,可以申请新的变量,但是不能申请额外的数据结构,如何完成排序?思路:    将要排序的栈记为stack,申请的辅助栈记为help.在stack上执行pop操作,弹出的元素记为cru.      如果cru小于或等于help的栈顶元素,则将cru直接压入help.      如果cru大于...

2018-09-18 16:06:35 1217

原创 内存分区

之前一直比较懵,想想还是单独写一个短篇来记录吧一般内存主要分为:代码区、常量区、静态区(全局区)、堆区、栈区这几个区域。 代码区:存放程序的代码,即CPU执行的机器指令,并且是只读的。 常量区:存放常量(程序在运行的期间不能够被改变的量,例如: 10,字符串常量”abcde”, 数组的名字等) 静态区(全局区):静态变量和全局变量的存储区域是一起的,一旦静态区的内存被分配, 静态区...

2018-09-18 11:21:21 750

原创 数据结构课上笔记3

这节课介绍了线性表结构和顺序表示的一部分内容。操作太多,而且书上有,就不一一介绍分析了。线性表定义:n个数据元素的有限序列。特点:存在唯一一个称作“第一个”的元素。 存在唯一一个称作“最后一个”的元素 除最后一个元素外,集合中每一个元素都只有一个直接前趋 除最后一个元素外,集合中每一个元素都只有一个直接后继注意1、2条:证明循环的序列不是线性表 注意:1)线性表...

2018-09-18 10:21:03 2204

原创 栈/队列 互相模拟实现

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:大概这么想:用一个辅助栈把进第一个栈的元素倒一下就好了。比如进栈1,2,3,4,5第一个栈:54321然后倒到第二个栈里12345再倒出来,顺序为1,2,3,4,5实现队列然后要注意的事情:1)栈2非空不能往里面倒数,顺序就错了。栈2没数...

2018-09-17 15:58:46 3129

原创 数组实现队列

数组实现队列结构:相对栈结构要难搞一些,队列的先进先出的,需要一个数组和三个变量,size记录已经进来了多少个元素,不需要其它萌新看不懂的知识。触底反弹,头尾追逐的感觉。循环使用数组。具体解释一下触底反弹:当我们的队头已经到了数组的底,我们就把对头设为数组的第一个元素,对于队尾也是一样。实现了对数组的循环使用。#include<stdio.h>#include&...

2018-09-17 14:29:21 2168

原创 双端单调队列

上次我们介绍了单调栈结构https://blog.csdn.net/hebtu666/article/details/82717317这次介绍一种新的数据结构:双端队列:双端队列是指允许两端都可以进行入队和出队操作的队列,其元素的逻辑结构仍是线性结构。将队列的两端分别称为前端和后端,两端都可以入队和出队。堆栈、队列和优先队列都可以采用双端队列来实现本文介绍单调双端队列的原理及应用。...

2018-09-16 10:16:51 1980

原创 单调栈

通过使用栈这个简单的结构,我们可以巧妙地降低一些问题的时间复杂度。单调栈性质:1、若是单调递增栈,则从栈顶到栈底的元素是严格递增的。若是单调递减栈,则从栈顶到栈底的元素是严格递减的。2、越靠近栈顶的元素越后进栈。(显而易见)本文介绍单调栈用法通过一道题来说明。POJ25591. 题目大意:链接给出一个柱形统计图(histogram), 它的每个项目的宽度是1, 高度...

2018-09-15 21:29:28 14388 208

原创 数据结构课上笔记2

今天继续说明了一些基本概念,讲解了时间空间复杂度。(对于概念的掌握也很重要) 元素之间的关系在计算机中有两种表示方法:顺序映像和非顺序映像,由此得到两种不同的储存结构:顺序存储结构和链式存储结构。 顺序:根据元素在存储器中的相对位置表示关系链式:借助指针表示关系 数据类型:是一个值的集合和定义在这个值集上的一组操作的总称。抽象数据类型:是指一个数学模型以及定...

2018-09-14 11:46:35 3091

原创 树状数组实现

树状数组能够完成如下操作:给一个序列a0-an计算前i项和对某个值加x时间o(logn)注意:有人觉得前缀和就行了,但是你还要维护啊,改变某个值,一个一个改变前缀和就是o(n)了。线段树树状数组的题就是这样,维护一个树,比较容易看出来。线段树:https://blog.csdn.net/hebtu666/article/details/826910...

2018-09-13 18:23:57 1004 3

原创 线段树简单实现

首先,线段树是一棵满二叉树。(每个节点要么有两个孩子,要么是深度相同的叶子节点)每个节点维护某个区间,根维护所有的。如图,区间是二分父的区间。当有n个元素,初始化需要o(n)时间,对区间操作需要o(logn)时间。下面给出维护区间最小值的思路和代码功能:一样的,依旧是查询和改值。查询[s,t]之间最小的数修改某个值 从下往上,每个节点的值为左右区间较小的...

2018-09-13 17:03:57 1242

原创 字符串上的简单动态规划

因为数据结构快学串了,以前又做过一些字符串dp的题,今天突然就想把它们写在一起吧。 直接开始问题1:给两个字符串,求最长公共子串问题2:给两个字符串,求最长公共子序列问题3:给一个字符串,求最长回文子串问题4:给一个字符串,求最长回文子序列问题5:给一个字符串,求将这个字符串变为回文串需要插入的最少字符个数。问题6:最小编辑代价问题7:判断交错组成问题8:给...

2018-09-13 14:18:26 2483

原创 并查集实现

并查集是什么东西?它是用来管理元素分组情况的一种数据结构。他可以高效进行两个操作:查询a,b是否在同一组 合并a和b所在的组萌新可能不知所云,这个结构到底有什么用?经分析,并查集效率之高超乎想象,对n个元素的并查集进行一次操作的复杂度低于O(logn) 我们先说并查集是如何实现的:也是使用树形结构,但不是二叉树。每个元素就是一个结点,每组都是一个树。无需关注...

2018-09-12 16:27:36 1577

原创 数据结构课上笔记1

第一节课复习了c语言的一些知识,并简单介绍了数据结构这门课程。 1、引用和函数调用:1.1引用:对一个数据建立一个“引用”,他的作用是为一个变量起一个别名。这是C++对C语言的一个重要补充。用法很简单:int a = 5; int &b = a;b是a别名,b与a代表的是同一个变量,占内存中同一个存储单元,具有同一地址。注意事项:声明一个引用,同时必须初...

2018-09-11 12:47:54 11879 105

原创 第七次课 课上代码

时间空间复杂度(例子:1-n求和)复杂度:https://blog.csdn.net/hebtu666/article/details/82463970https://blog.csdn.net/hebtu666/article/details/82465495二分一个数组查找某个值1 2 3 5 6 7 8 9 10 15 20。。查找11 Debug(二分)(#,’...

2018-09-07 22:29:38 804

原创 18暑期培训总结

暑假一共直播讲了七次课,每次一小时到一个半小时,前六次讲解python主要实用语法,最后一次讲了学习方法和简单基础的思想和算法。由于时间有限,不能做到很好,请见谅。学院做题网站:橙白ojhttp://oj.acm-icpc.top/网站使用教程也在群里大家可以进去做作业第一次课 优秀作业展示https://blog.csdn.net/hebtu666/article/de...

2018-09-07 22:24:43 4537 4

原创 kmp2-HDU1358 HUST1010 POJ2406 POJ2752

HDU1358http://acm.hdu.edu.cn/showproblem.php?pid=1358 先构造出 next[] 数组,下标为 i,定义一个变量 j = i - next[i] 就是next数组下标和下标对应值的差,如果这个差能整除下标 i,即 i%j==0 ,则说明下标i之前的字符串(周期性字符串长度为 i)一定可以由一个前缀周期性的表示出来,这个前缀的长度为刚才求...

2018-09-07 17:32:40 913

原创 kmp1-HDU1711 HDU1686 HDU2087 HDU3746

HDU 1711 kmp模板题http://acm.hdu.edu.cn/showproblem.php?pid=1711#include<stdio.h>#include<string.h>#define N 1000005int s[N];int p[N];int next[N];int m,n;void getnext(){ int j...

2018-09-07 10:34:59 922

原创 时间复杂度 P/NP/NPC

你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已经被澄清了。下面的内容都是在讲什么是P问题,什么是NP问题,什么是NPC问题,你如果不是很感兴趣就可以不看了。...

2018-09-06 17:51:48 7802 62

原创 时间空间复杂度概述

找个时间写一写时间复杂度和一些问题分类,也普及一下这方面知识。如何衡量一个算法好坏很显然,最重要的两个指标:需要多久可以解决问题、解决问题耗费了多少资源那我们首先说第一个问题,要多长时间来解决某个问题。那我们可以在电脑上真实的测试一下嘛,多种方法比一比,用时最少的就是最优的啦。但是没必要,我们可以通过分析计算来确定一个方法的好坏,用O()表示,括号内填入N、1,等式子。这到底是...

2018-09-06 17:25:39 3946

原创 橙白oj18训练作业2-题解、代码

http://oj.acm-icpc.top/a题:三个数字排序可以利用sort函数排序,或者自己想清楚逻辑自己写,我给出一个正确逻辑(拓展冒泡和其他排序参考https://blog.csdn.net/hebtu666/article/details/81434236)a,b,c=input().split(" ")a,b,c=int(a),int(b),int(c)if a...

2018-09-05 19:46:51 2610

原创 橙白oj18训练作业1-题解、代码

学习资料和oj如何使用加软件官方qq群739979255oj网址:http://oj.acm-icpc.top/a题:原题为输入两个数,一行,用空格隔开,因为python操作对萌新来说略难,改为一行一个数,算出a+b。思路:依次接收数字,注意转换为整形(input接受为字符串),然后加起来。a=int(input())b=int(input())print(a+b)b题:...

2018-09-05 19:30:53 2722

空空如也

hebtu666的留言板

发表于 2020-01-02 最后回复 2020-07-14

空空如也

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

TA关注的人 TA的粉丝

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