自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 收藏
  • 关注

转载 web.xml 中的listener、 filter、servlet 加载顺序及其详解

http://www.cnblogs.com/shenliang123/p/3344555.html在项目中总会遇到一些关于加载的优先级问题,刚刚就遇到了一个问题,由于项目中使用了quartz任务调度,quartz在web.xml中是使用listener进行监听的,使得在tomcat启动的时候能马上检查数据库查看那些任务未被按时执行,而数据库的配置信息在是在web.xml中

2016-11-01 09:59:54 323

转载 加密算法笔记

对称算法的效率高,但是密钥的传输需要另外的通道。非对称算法RSA和DH可以解决密钥的传输问题。DH密钥交换算法的作用是使通信双方可以在不安全的通道中建立一个相同的密钥,用于通信加密。基本原理:假设通信双方A和B,选定一个数g,g是可公开的1.A随机选择一个数a,a是保密的2.A计算g^a发送给B3.B随机选择一个数b,b是保密的4.B计算g^b发送给A5.A

2016-08-15 16:39:49 793

原创 Reverse Words in a String

Given an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue is sky the".------------------------------------再次写这代码写的各种乱需要考虑到字符串的空格~!

2015-09-03 22:27:33 535

原创 Next Permutation

Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.If such arrangement is not possible, it must rearrange it as the lowest possible

2015-09-03 19:39:58 299

转载 iOS中,在类的源文件(.m)中,@interface部分的作用?

此@interface部分为类扩展(extension)。其被设计出来就是为了解决两个问题的,其一,定义类私有方法的地方。其二,实现public readonly,private readwrite的property(意思是在h头文件中定义一个属性对外是readonly的,但在类的内部希望是可读写的,所以可以在m源文件中的@interface部分重新定义此属性为readwrite,此时此属

2015-07-09 10:17:08 367

转载 iOS 键盘收起~

eld/textView收起键盘的方法有很多,但总的来说就是释放第一响应者和结束编辑即可?12345678910111213141516171819201.最简单粗暴的,只要在 任何

2015-07-02 11:02:17 495

转载 Objective-c 代理模式(delegate)

http://blog.sina.com.cn/s/blog_797bb4bf01015t8f.html一、什么事代理模式?        代理模式是在oc中经常遇到的一种设计模式,那什么叫做代理模式呢? 举个例子:有一个婴儿,他本身不会自己吃饭和洗澡等等一些事情,于是婴儿就请了一个保姆,于是婴儿和保姆之间商定了一个协议,协议中写明了保姆需要做什么事情, 而保姆就是

2015-07-02 09:36:06 395

原创 笔记

iOS层次架构:Cocoa Touch->Media->Core services ->Core OSCocoa Touch:创建IOS应用程序所需的关键框架Media:图形技术 音频技术 和视频技术 Core Services:提供基础系统服务Core OS:底层功能是很多其它技术的构建基础 通常情况下这些功能不会直接应用于应用程序而是应用于其它框架 在编写代

2015-07-01 14:57:50 356

原创 objective-c类初始化

并不一定要要为自己的类创建初始化函数。如果不需要设置任何状态 或者alloc方法将内存清零的默认行为相当不错 则不必去在意init方法如果创建了一个指定初始化函数 则一定要在自己的指定的初始化函数中调用超类的指定初始化函数如果初始化函数不止一个 则需要选择一个指定初始化函数 被选定的初始化函数应当调用超类的指定初始化函数 要按照指定初始化函数的形式实现所有的初始化函数@proper

2015-06-30 15:57:53 470

原创 求1+2+...+n

题目:求1+2+。。+n 要求不能使用乘除法 for while if else switch case等关键字及条件判断语句 (A?B:C)思路1:定义一个类型 接着创建n个该类型的实例 那么这个类型的构造函数将确定会被调用n次将累加相关的代码放到构造函数中#include using namespace std;class Temp {private:

2015-06-16 17:10:41 465

原创 圆圈中最后剩下的数字

题目:0.1....n-1这n个数字排成一个圆圈 从数字0开始每次从这个圆圈里删除第m个数字 求出这个圆圈里剩下的最后一个数字int lastnum( int n, int m){ if (n < 1 || m < 1) return false; list Listnum; for (int i = 0;i < n;i++) Listnum.push_back

2015-06-16 15:05:48 321

原创 扑克牌的顺子

题目:从扑克牌中随机抽5张牌 判断是不是一个顺子即这5张牌是不是连续的 2-10为数字本身 A为1 J为11 Q为12 K为13 而大小王可以看成任意数字思路:可以把5张牌看成由5个数字组成的数组 大小王是特殊的数字 不妨把它定义为0 接下来就是怎么判断这5个数字是否连续 可以用排序的方法由于0可以当做是任意数字 可以用0去补满数组中的孔雀 如果排序后的数组不是连续

2015-06-16 14:51:06 418

原创 n个骰子的点数

题目:把n个骰子扔在地上 所有骰子朝上一面的点数之和为s 输入n 打印出s的所有可能出现的概率思路:将n个骰子分为两堆  第一堆只有一个 另一个有n-1个 单独的那一个有6中可能 需要计算从1到6的每一种点数 和剩下的n-1个骰子 来计算点数 和 接下来把剩下的n-1个骰子还是分成两堆 第一堆只有一个 第二堆有n-2个 把上一轮单独骰子的点数和这一轮单独骰子点数相加 再和剩下的n-

2015-06-16 11:54:58 332

原创 翻转单词顺序VS左旋转字符串

题目:输入一个英文句子 翻转句子中单词的顺序 但单词内字符的顺序不变 为了简单起见 标点符号和普通字母一样处理例如“I am a student. " 则输出”student. a am I"思路:先翻转句子 再翻转句子中的每个单词 #include using namespace std;void reserve(char *start, char

2015-06-15 22:45:21 370

原创 二叉树的深度

题目:输入一颗二叉树的根结点 求该树的深度  从根结点到叶节点一次经过的节点(含根、叶结点)形成树的一条路径 最长路径为树的深度二叉树的节点定义如下:typedef struct BinaryTreeNode{int m_nValue;BinaryTreeNode* m_pLeft;BinaryTreeNode* m_pRight;};int max(int a, int b)

2015-06-15 21:01:36 366

原创 数字在排序数组中出现的次数

题目:统计一个数字在排序数组中出现的次数 列如输入排序数组{1 2 3 3 3 3 4 5}和数字3 输出4排序数组  可以用二分查找 查找输入的数字在数组中第一次出现的位置以及最后一次出现的位置#include using namespace std;int find1(int *A, int a, int b, int num){ if (a > b)

2015-06-15 20:39:56 329

原创 第一个只出现一次的字符

题目:在字符串中找出第一个只出现一次的字符 如输入“abaccdeff" 则输出‘b'从前向后遍历每一个字符 然后将当前字符与后面的每个字符比较 如果发现没有重复的字符则该字符就只出现一次 时间复杂度为O(n*n)我们可以统计每个字符出现的次数 需要一个数据容器来统计每个字符的出现次数 #include #include using namespace std;i

2015-06-14 11:10:03 317

原创 丑数

题目:把只包含因子2、3和5的数称作丑数 求按从小到大的顺序的第1500个丑数(第一个丑数为1)从1 开始遍历 每一个数 若n因式分解只包含2、3、5这三个因子,即使n%2 n%3 n%5最后余数为0 则说明n为丑数这样做会导致1500个丑数之前的每个数都需要遍历---------------------------------分析:第一个丑数为1 接着为2,3,4,5,6,。

2015-06-14 11:00:45 375

转载 用qsort对字符串数组排序需要注意的几个问题

qsort是万能数组排序函数,必须要学会使用,简单的数组自然不用说,这里主要讨论一下字符串数组的使用。  首先看一下qsort的原型:    void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *));  正确使用这个函数要注意几点:1.b

2015-06-13 18:09:59 674

原创 把数组排成最小的数

题目:输入一个正整数数组  把

2015-06-13 18:03:55 279

原创 最小的K个数

题目:输入n个整数 找出其中最小的K个数 例如输入 4 5 1 6 2 7 3 8 这8个数字 最小的4个数字是 1 2 3 4解法1:排序 算法的时间复杂度为O(nlogn)解法2:快速排序 查找第k个大的数 算法的时间复杂度为O(logn)#include #include using namespace std;int partion(int

2015-06-12 16:51:31 288

原创 数组中出现次数超过一半的数字

题目: 数组中有一个数组出现的次数超过数组长度的一半 请找出这个数字解法1:最直观的方法是对数组进行排序 如果排好序就很容易计算出每个数字出现的次数 排序的时间复杂度为O(nlogn) 解法2: 如果对这个数组排序 要找出出现次数超过数组长度一半的数字 这个输液就是长度为n的数组第n/2大的数字 即中位数          可以用快速排序的方法找出任意第K大的数字 算法复杂度为

2015-06-12 15:51:15 395

原创 字符串的排列

题目:输入一个字符串 打印出该字符串中字符的所有排列 例如输入字符串abc 则打印出由字符a、b、c所能排列出来的所有字符串打印abc 所有排列组合可以将第一位看做为a.然后分别于剩余的两位b、c进行交换得到bac bca 接着对只有两位的字符串进行交换 将第一位于剩余的位进行交换因此 递归的将第一位与其余位进行交换#include #include using

2015-06-11 14:27:28 369

原创 二叉搜索树与双向链表

题目:输入一颗二叉搜索树 将该二叉搜索树转换成一个排序的双向链表 要求不能创建任何新的结点 只能调整树中及诶单指针的指向二叉树结点定义如下:BinaryTreeNode* bulidlist(BinaryTreeNode *root){//返回的是链表的尾结点 if (root==NULL) return; if(root->m_pLeft==NULL && root->m_pR

2015-06-11 14:26:45 352

原创 二叉树中和为某一值的路径

题目:输入一颗二叉树和一个整数 打印出二叉树中结点值的和为输入整数的所有路径 从输的根节点开始往下一直到叶节点所经过的节点构成一条路径二叉树的定义如下:struct BinaryTreeNode{ int m_nValue; BinaryTreeNode *m_pLeft; BinaryTreeNode *m_pRight;};当用前序遍历方式访问到某一个结点时  我们

2015-06-11 11:20:44 340

原创 二叉搜索树的后续遍历序列

题目:输入一个整数数组 判断该数组是不是某二叉搜索树的后续遍历结果 如果是则返回true 否咋返回false 假设输入数字的任意两个数字都互不相同后序遍历是左->右->根       左数组最后一个值t为根结点的值数组中小于t的为树的左孩子 之后的应当为右孩子 且所有的右孩子大于根t 若存在不大于t的值 则表明不是二叉搜索树的后序遍历顺序然后递归判断左孩子和右孩子是

2015-06-11 11:19:41 290

原创 从上往下打印二叉树

题目:从上往下打印出二叉树的每个结点 同一层的结点按照从左到右的顺序打印从上到下从左到右即层次遍历二叉树void visit(BinaryTreeNode *root){ if(root!=NULL) { s.push(root); BinaryTreeNode *t=NULL; while(s.size()) { t=s.front();

2015-06-11 09:54:40 327

原创 Reservoir Sampling

蓄水池算法~~~

2015-06-10 23:15:49 303

原创 栈的压入、弹出顺序

题目:输入两个整数序列 第一个序列表示栈的压入顺序 请判断二个序列是否为该栈的弹出顺序。假设压入展的所有数字均不相同 例如序列1/2/3/4/5是某栈的压栈序列 序列4、5/3/2/1 是该压栈序列对应的一个弹栈序列 但4、3、5、1、2就不是#include #include using namespace std;stack s;bool Isoroder(int *A

2015-06-10 21:07:38 328

原创 包含min函数的栈

题目:定义栈的数据结构 请在该类型中实现一个能够得到栈的最小值的min函数 在该栈中 调用min、push及pop的时间复杂度都是O(1)#include #include #include using namespace std;template struct stackmin{ stack s1; stack s2; void push(T a); void p

2015-06-10 20:42:26 261

原创 顺时针打印矩阵

题目:输入一个矩阵 按照从外向量以顺时针的顺序依次打印出每一个数字 #include using namespace std;int main(){ int n; cin>>n; int **A=(int **)malloc(sizeof(int *)*n); for(int i=0;i<n;i++) A[i]=(int *)malloc(sizeof(int )*

2015-06-10 20:40:28 340

原创 二叉树的镜像

题目:请按成一个函数 输入一个二叉树 该函数输出它的镜像二叉树结点的定义如下:struct BinaryTreeNode{ int m_nValue; BinaryTreeNode * m_pLeft; BinaryTreeNode * m_pRight;};先序遍历二叉树 如果该结点不是叶子结点 则交换其左右孩子 当交换完所有非叶子结点 就得到了镜像的二叉树

2015-06-10 17:01:04 329

原创 树的子结构

题目:输入两颗二叉树A和B 判断B是不是A的子结构 二叉树结点定义如下;首先 从树根开始遍历树如果结点与 B的根结点值相同 则继续遍历A的左子树 以及B的左子树 如果左子树相同则遍历A的右子树以及B的左子树 如果左右子树都相同则 A包含B如果结点与B的根节点值不同 则遍历到A的左孩子 重复上述判断做孩子是否含有B 如果左子树不含有B 则遍历到A的右子树 判断其是否含有B

2015-06-10 16:48:40 313

原创 合并两个排序的链表

题目:输入两个递增排序的链表 合并这两个链表并使心里暗标中的结点仍然是按照递增的排序 链表结点的定义如下:struct ListNode{int m_nValue;ListNode *m_pNext;};#include using namespace std;struct ListNode{int m_nValue;ListNode *

2015-06-10 16:04:23 428

原创 反转链表

题目:定义一个函数 输入一个链表的头结点 翻转该链表并输出翻转后链表的头结点 链表定义如下struct ListNode{int m_nValue;ListNode *m_pNext;}ListNode*reserve(ListNode *Lhead){ if(Lhead==NULL) { throw std::exception("Error ~!");

2015-06-10 15:21:49 275

原创 链表中倒数第K个结点

题目:输入一个链表 输出该链表中倒数第K个结点 从1开始计数 即链表的尾结点是倒数第1个结点 如一个链表有6个结点从头结点开始他们的值一次为1 2 3 4 5 6 这个链表的倒数第3个结点值为4链表结点定义如下:struct ListNode{int m_nValue;ListNode *m_pNext;};-----------------

2015-06-09 18:29:20 255

原创 调整数组顺序使奇数位于偶数前面

题目:输入一个整数数组 实现一个函数用来调整该数组中数字的顺序 使得所有奇数位于数组的前半部分 偶数位于数组的后半部分#include using namespace std;void exchange(int *a,int n){ int low=0; int high=n-1; int t=0; if(a==NULL || n==0) throw std::exc

2015-06-09 16:44:54 307

原创 打印1到最大的n位数

题目:输入数字n 按顺序打印出从1最大的n为十进制数 比如输入3 则打印出1 2 3 一直到最大的3位数即999考虑到大数 应当使用字符串打印数字 何时打印停止 可以使用strcmp与n位最大的数9999...9比较 但每次比较时间复杂度为O(N)只有999....9加1时高位才会产生进位 因此可以判断最高位是否有进位来控制打印停止bool isov

2015-06-09 16:14:44 352

原创 数值的整数次方

题目:实现函数double power(double base,int exponent),求base的exponent次方 不得使用库函数  同时不需要考虑大数问题考虑到base 为0 或者指数为0时 无意义base为1时返回base 指数为负数时返回 倒数 bool equal(double n1,double n2)//浮点数比较大小~~~~{ if(abs(n1-n2)

2015-06-09 11:00:48 298

原创 斐波那契数列

题目:写一个函数 输入n 求斐波那契数列的第n项 斐波那契数列定义如下: f(n)=0   n=0f(n)=1    n=1f(n)=f(n-1)+f(n-2) n>1

2015-06-09 10:15:00 423

空空如也

空空如也

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

TA关注的人

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