今天学了一下堆,用数组写的,贴出来。 /************************************************************************* > File Name: 堆.cpp > Author: 刘怪怪 > Mail: > Created Time: 2017年11月30日 星期四 22时21分19秒 ************************************************************************/ #include<iostream> using namespace std; int h[101]; //用数组来存放堆 int n; //堆的大小 void swap(int x, int y) { int t; t=h[x]; h[x] = h[y]; h[y] = t; r 继续阅读 >>


刘嘉辉 17/11/30 23:14:16
1、什么是泛型 泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。 2、一个小例子 import java.util.ArrayList; import java.util.List; public static void main(String[] args) { List list = new ArrayList(); list.add("hello"); list.add("hallo"); list.add(1); for (int i = 0; i < list.size(); i++) { String str = (String 继续阅读 >>


李猛 17/11/30 21:14:17
B. Painting Eggs time limit per test 5 seconds memory limit per test 256 megabytes input standard input output standard output The Bitlandians are quite weird people. They have very peculiar customs. As is customary, Uncle J. wants to have n eggs painted for Bitruz (an ancient Bitland festival). He has asked G. and A. to do the work. The kids are excited because just as is customary, they're going to be paid for the job! Overall uncle J. has 继续阅读 >>


殷健翔 17/11/30 17:32:05
源码版本:4.0.1 源码位置: intset.h:数据结构的定义 intset.c:创建、增删等操作实现 1. 整数集合简介 intset是Redis内存数据结构之一,和之前的 sds、 skiplist、dict、adlist 等通用数据相比,它是Redis特有的,用来实现Redis的Set结构(当元素较小且为数字类型时),它的特点有: 元素类型只能为数字。 元素有三种类型:int16_t、int32_t、int64_t。 元素有序,不可重复。 intset和sds一样,内存连续,就像数组一样。 2. 数据结构定义 typedef struct intset { uint32_t encoding; // 编码类型 int16_t、int32_t、int64_t uint32_t length; // 长度 最大长度:2^32 int8_t contents[]; // 柔性数组 } intset; 3. 创建、插入(扩缩容 继续阅读 >>


杨博东 17/11/30 00:52:45
今天Java上机的时候有一道题是这样的: 本题目要求定义一个长度可变的整型数组IntArray,数组初始长度为5,当输入的数组元素个数超过数组长度时,数组就自动增加5个元素的容量,即数组长度增加5。 也就是说实现一个类似于ArrayList的自动扩容int型的数组. 既然类似于ArrayList, 那不妨来看看ArrayList是如何动态扩容的. ArrayList是集合类List基于数组的一个实现, 也就是说, ArrayList底层实质上就是一个Object[]数组. 但是数组是定长的, 而我们在使用ArrayList的时候之所以不会有这样的感受就是因为它封装了内部的数组扩容操作, 所以ArrayList如何安全的实现扩容就成了我们的关注点. 1. ArrayList底层数组容量的初始化 在ArrayList初始化的时候, 是可以通过参数initialCapacity来指定底层数组的初始大小. 其构造方法源码节选如下: // ArrayList的默认容量为10 priva 继续阅读 >>


祝一迪 17/11/29 23:02:56
前天给本地电脑虚拟机的Ubuntu系统安装FTP软件,结果没有安装成功,后面再安装其它软件就提示dpkg 被中断,您必须手工运行 sudo dpkg --configure -a解决此问题,但是即使运行sudo dpkg --configure -a也不能解决问题,也在百度上找了一些解决方法,可还是没有搞定,最后在Ubuntu的论坛里面找到了解决方法。 运行下面的命令即可解决 sudo rm /var/lib/dpkg/updates/*sudo apt-get updatesudo apt-get upgrade 主要原因应该是/var/lib/dpkg/updates 文件夹里面的资料有错误,使得更新软件的程序出现错误,所以得把它们完全删除,通过sudo apt-get update这个指令会重新建立这些资料,使用sudo apt-get upgrade更新你的电脑里面已安装的软件的明细,根据软件的明细更新软件到最新版。 英文好的可以看看这篇文章:http://ubuntu 继续阅读 >>


殷健翔 17/11/29 21:59:24
C. Square Subsets time limit per test 4 seconds memory limit per test 256 megabytes input standard input output standard output Petya was late for the lesson too. The teacher gave him an additional task. For some array a Petya should find the number of different ways to select non-empty subset of elements from it in such a way that their product is equal to a square of some integer. Two ways are considered different if sets o 继续阅读 >>


楚东方 17/11/29 11:27:11
G - Coding Contest  HDU - 5988  A coding contest will be held in this university, in a huge playground. The whole playground would be divided into N blocks, and there would be M directed paths linking these blocks. The i-th path goes from the uiui-th block to the vivi-th block. Your task is to solve the lunch issue. According to the arrangement, there are sisi competitors in the i-th block. Limited to the size of table, bibi bags of lunch inclu 继续阅读 >>


楚东方 17/11/28 23:17:48
今天遇到一个问题就是利用队列求解二叉树的某一层的节点个数,乍一看感觉蛮简单,一上手让我有点头凉凉。 首先要解决的问题就是如何在队列中用标志来对二叉树进行分层,脑子里虽然有个大概的思路,弄几个循环,再来几个变量控制,也忒麻烦了。找了下博客也没看懂多少,高乐高还是给整出来了。思路如下。 emmmmm,我们不知道如何解决层的问题,再细分就是需要知道某一层有多少个,也就间接解决了层的问题。有点绕啊,不卖关子了,直接说了。 两个数,int curcount(来记录当前层的节点个数), int nextcount(来记录下一层的节点个数); 显然,curcount的初始值为1,因为只有一个根结点,而nextcount由于未知,故置为0. void count_tree(Tnode *root,int level)//level 传进来的层数 { int curcount=1,nextcount=0;//初始化当前节点个数,及下一行节点个数 继续阅读 >>


刘嘉辉 17/11/28 22:51:10
题描述   输入一个只包含加减乖除和括号的合法表达式,求表达式的值。其中除表示整除。 输入格式   输入一行,包含一个表达式。 输出格式   输出这个表达式的值。 样例输入 1-2+3*(4-5) 样例输出 -4 数据规模和约定   表达式长度不超过100,表达式运算合法且运算过程都在int内进行。 这个题的思路就是先把中缀表达式转化为后缀表达式,然后用后缀表达式计算出式子的值 1.将中缀表达式转换为后缀表达式的方法: (1) 初始化两个栈:运算符栈S1和储存中间结果的栈S2; (2) 从左至右扫描中缀表达式; (3) 遇到操作数时,将其压入S2,这里由于运算数可能大于10,所以如果数字后面一个符号是运算符,则将‘#’入S2栈充当分割线; (4) 遇到运算符时有三种情况: (4-1) 三种情况下直接入S1栈①S1为空②运算符为‘(’③运算符优先级比S1栈顶运算符的高; (4-2)如果右括号“)”,则依次弹出S1栈顶的运算符,并压入S2,直到遇到左括号为止,此时将这一 继续阅读 >>


陈文浩 17/11/28 21:15:07