- 浏览: 30453 次
- 性别:
- 来自: 北京
最新评论
-
u010815305:
多说一句,这个差不多1000多万行的数据,在hive上处理时间 ...
我迄今为止写的最长的SQL
文章列表
题目描述:
输入一个链表,反转链表后,输出链表的所有元素。
(hint : 请务必使用链表)
输入:
输入可能包含多个测试样例,输入以EOF结束。
对于每个测试案例,输入的第一行为一个整数n(0<=n<=1000):代表将要输入的链表的个数。
输入的第二行包含n个整数t(0<=t<=1000000):代表链表元素。
- 2014-08-04 21:36
- 浏览 408
- 评论(0)
题目:
输入一个证书数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有的偶数位于数组的后半部分。
思想:维护两个指针,第一个指针初始化时指向数组的第一个数字,她只向后移动;第二个指针初始化时指向数组的最后一个数字,她只向
前移动。在这两个指针相遇之前,第一个指针总是位于第二个只针对前面。如果第一个指针指向的数字式偶数,并且第二个指针指向的数字
是奇数,交换这两个数字。
代码:
#include<stdio.h>
#include<stdlib.h>
void reorder(int* pData,unsigned ...
- 2014-08-03 23:37
- 浏览 512
- 评论(0)
题目描述:
输入一个链表,输出该链表中倒数第k个结点。
(hint: 请务必使用链表。)
输入:
输入可能包含多个测试样例,输入以EOF结束。
对于每个测试案例,输入的第一行为两个整数n和k(0<=n<=1000, 0<=k<=1000):n代表将要输入的链表元素的个数,k代表要查询倒数第几个的元素。
输入的第二行包括n个数t(1<=t<=1000000):代表链表中的元素。
- 2014-08-03 22:42
- 浏览 543
- 评论(0)
在O(1)时间删除链表的节点
题目:
给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点,
我们要删除一个节点i,先把i的下一个节点j的内容复制到i,然后把i 的指针指向节点j的下一个节点。此时再删除节点
j,其效果就是把节点i给删除了 。#include<stdio.h>
#include<stdlib.h>
struct ListNode
{
int m_nValue;
ListNode* m_pNext;
};
void deleteNode(ListNode** pListHead,ListNode* pTo ...
- 2014-08-02 22:39
- 浏览 525
- 评论(0)
题目描述:
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
输入:
输入可能包含多个测试样例。
对于每个输入文件,第一行输入一个整数T,表示测试案例的数目,接下来的T行每行输入一个浮点数base和一个整数exponent,两个数中间用一个空格隔开。
- 2014-07-30 21:31
- 浏览 301
- 评论(0)
题目描述:
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
输入:
输入可能包含多个测试样例。
对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。
。n保证是int范围内的一个整数。
输出:
- 2014-07-30 11:23
- 浏览 389
- 评论(0)
题目描述:
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
输入:
输入可能包含多个测试样例,对于每个测试案例,
输入的第一行为一个整数n(1<= n<=1000000):代表旋转数组的元素个数。
输入的第二行包括n个整数,其中每个整数a的范围是(1<=a<=10000000)。
输出:
对应每个测试案例,
输出旋转数组中最小的元素。
样例输入:
53 4 5 ...
- 2014-07-26 22:09
- 浏览 315
- 评论(0)
题目描述:
用两个栈来实现一个队列,完成队列的Push和Pop操作。
队列中的元素为int类型。
输入:
每个输入文件包含一个测试样例。
对于每个测试样例,第一行输入一个n(1<=n<=100000),代表队列操作的个数。
接下来的n行,每行输入一个队列操作:
1. PUSH X 向队列中push一个整数x(x>=0)
2. POP 从队列中pop一个数。
输出:
对应每个测试案例,打印所有pop操作中从队列pop中的数字。如果执行pop操作时,队列为空,则打印-1。
样例输入:
3
P ...
- 2014-07-25 21:15
- 浏览 453
- 评论(0)
题目描述:
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输 ...
- 2014-07-25 20:05
- 浏览 541
- 评论(0)
题目描述:
输入一个链表,从尾到头打印链表每个节点的值。
输入:
每个输入文件仅包含一组测试样例。
每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。第一行是链表第一个节点的值 ...
- 2014-07-24 17:12
- 浏览 377
- 评论(0)
题目描述:
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
输入:
每个输入文件仅包含一组测试样例。
对于每组测试案例,输入一行代表要处理的字符串。
输出:
对应每个测试案例,出经过处理后的字符串。
样例输入:
We Are Happy
样例输出:
We%20Are%20Happy
#include<stdio.h>
#include<stdlib.h>
#include<s ...
- 2014-07-24 15:00
- 浏览 295
- 评论(0)
题目描述:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
输入:
输入可能包含多个测试样例,对于每个测试案例,
输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的矩阵的行数和列数。
输入的第二行包括一个整数t(1<=t<=1000000):代表要查找的数字。
接下来的m行,每行有n个数,代表题目所给出的m行n列的矩阵(矩阵如题目描述所示,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的 ...
- 2014-07-24 13:06
- 浏览 422
- 评论(0)
计数排序
计数排序是建立在这样的前提条件下的:假设n个输入元素的每一个都是0到k区间内的一个整数,其中k为某个整数。因此我们后面所写的程序也只是针对0到k之间的元素进行排序,
换句话说,排序元素中不能有负数。
基本思想:
对一个输入元素x,先确定所有输入元素中小于x的元素个数,那么排序后x所在的位置也就明确了。比如,所有的输入元素中有10个元素小于x,那么排好序后x的位置序号就应该是11。
当然,如果有相同元素,自然要放到相邻的位置上。/*
第一种形式实现计数排序
计数排序后的顺序为从小到大
arr[0...len-1]为待排数组,每个元素均是0-k中的一个值
b ...
- 2014-07-23 15:36
- 浏览 454
- 评论(0)
归并排序
实现思想:
归并的含义很明显就是将两个或者两个以上的有序表组合成一个新的有序表。
归并排序中一般所用到的是2-路归并排序,即将含有n个元素的序列看成是n个有序的子序列,
每个子序列的长度为1,而后两两合并,得到n/2个长度为2或1的有序子序列,再进行两两合并。。。
直到最后由两个有序的子序列合并成为一个长度为n的有序序列。
2-路归并的核心操作是将一维数组中前后相邻的两个有序序列归并为一个有序序列。
2-路归并的代码:/*
蒋有绪的arr[start...mid]和有序的arr[mid+1...end]
合并为有序的arr[start...end]
*/
vo ...
- 2014-07-23 14:30
- 浏览 322
- 评论(0)
Linux 下的压缩与解压
1.压缩或解压缩文件或目录zip/unzip
zip [选项] 压缩文件名 需要压缩的文档列表
unzip [选项] 压缩文件名
举例:
<1>将/etc下的所有文件以及目录压缩,设置压缩级别为最高,保存到文件/opt/etc.zip
zip -9r /opt/etc.zip /etc
<2>将/var 下的文件以及子目录压缩,除了"*.log"文件,降压所的文件保存到/opt
zip -r /opt/var.zip /var -x "*.log"
<3>将/opt/etc. ...
- 2014-07-22 21:29
- 浏览 385
- 评论(0)