摘要:
http://blog.csdn.net/ns_code/article/details/12977901 二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就... 阅读全文
posted @ 2016-03-16 23:12
copperface
阅读(139)
评论(0)
推荐(0)
摘要:
这个算法的根本原理是:一个分数对应一条直线的斜率。用数学语言描述就是:一条直线的斜率是无穷大(垂直于X轴)或者是(Y2-Y1) / (X2-X1),我们要做的就是找到2个整数,在指定的精度范围内接近这个斜率。对于正数来说,我们设置分子为0,分母为1,然后比较这个分数同给定的十进制数。如果我们的分数太小了(比如,我们选择的点在直线的下面),我们就加大分子的值直到这个分数太大(比如,这个点在直... 阅读全文
posted @ 2016-03-16 23:03
copperface
阅读(658)
评论(0)
推荐(0)
摘要:
设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。 平均时间复杂度:尽管快速排序的最坏时间为 O(n^2 ), 但就平均性能而言,它是基于关键字比较的内部排序算法中速度最快的,快速排序亦因此而得名。它的平均时间复杂度为 O(n×lgn)。 ... 阅读全文
posted @ 2016-03-16 22:56
copperface
阅读(260)
评论(0)
推荐(0)
摘要:
ASP.Net中内置的简化AJAX开发的控件UpdatePanel放入ScriptManager,将要实现AJAX效果的控件放到UpdatePanel中即可。UpdatePanel原理探秘,用HttpWatch看。只把需要无刷新更新的部分放到UpdatePanel中。UpdatePanel用来实现一些对性能要求不高的需求非常方便。Timer实现定时AJAX效果,原理分析。 UpdateProgre... 阅读全文
posted @ 2016-03-16 22:13
copperface
阅读(195)
评论(0)
推荐(0)
摘要:
这里是因为序列化类型比较复杂,直接用JavaScriptSerializer将其序列化不成功123456789101112131415161718192021222324252627public class PagedService : IHttpHandler { public void ProcessRequest (HttpContext context) { con... 阅读全文
posted @ 2016-03-16 21:55
copperface
阅读(958)
评论(0)
推荐(0)
摘要:
AJAX传递复杂数据如果自己进行格式定义的话会经历组装、解析的过程,因此AJAX中有一个事实上的数据传输标准JSon。Json将复杂对象序列化为一个字符串,在浏览器端再将字符串反序列化为JavaScript可以读取的对象。看一下Json的格式。Json被几乎所有语言支持。在C#中,将一段信息,根据Javascript的格式进行序列化,如下:1234567891011121314151617... 阅读全文
posted @ 2016-03-16 21:53
copperface
阅读(150)
评论(0)
推荐(0)
摘要:
服务器端程序1234567891011121314151617181920212223 using System;using System.Web; public class GetPrice : IHttpHandler { public void ProcessRequest (HttpContext context) { context .Response.Con... 阅读全文
posted @ 2016-03-16 21:50
copperface
阅读(190)
评论(0)
推荐(0)
摘要:
服务器端12345678910111213141516171819202122232425using System;using System.Web;using System.Text;public class PostComment : IHttpHandler { public void ProcessRequest (HttpContext context) { ... 阅读全文
posted @ 2016-03-16 21:48
copperface
阅读(239)
评论(0)
推荐(0)
摘要:
1234567891011121314151617181920212223242526272829303132333435如果改成如下方式xmlHttp . open( "GET" , "GetDate1.ashx?"ts" + new Date (), false ); 那么发出请求以后发现点击按钮,时间不更新并且在Stream中没有请求。这是因为:xmlHttp . open( "GET" ,... 阅读全文
posted @ 2016-03-16 21:46
copperface
阅读(342)
评论(0)
推荐(0)
摘要:
功 能: 使用快速排序例程进行排序头文件:stdlib.h用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));参数: 1 待排序数组首地址2 数组中待排序元素数量3 各元素的占用空间大小4 (比较函数)指向函数的指针,用于确定排序的顺序比如:对一个长为1000的数组进行排序时,... 阅读全文
posted @ 2016-03-16 21:42
copperface
阅读(204)
评论(0)
推荐(0)
摘要:
http://blog.csdn.net/wuliming_sc/article/details/3717017const、volatile、mutable的用法const修饰普通变量和指针const修饰变量,一般有两种写法:12const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于... 阅读全文
posted @ 2016-03-16 21:32
copperface
阅读(436)
评论(0)
推荐(0)
摘要:
自动变量,就是普通的局部变量相对于静态变量而言的非自动变量有两种,一种是全局变量,一种是静态变量 自动的意思就是在一定的作用域内会自动消亡非自动就是不会自己释放内存,每次访问改变值后,值会一直保存在那里 阅读全文
posted @ 2016-03-16 21:29
copperface
阅读(1058)
评论(0)
推荐(1)
摘要:
判断是否是数字isdigitisNumber 二者区别http://www.cnblogs.com/xiashengwang/p/3219925.html 需要包含头文件 #include【旧】#include 【新】判断字母isalpha: 判断字符ch是否为英文字母,若为小写字母,返回2,若为大写字母,返回1。若不是字母,返回0。isupper (int c): 当参数c为大写... 阅读全文
posted @ 2016-03-16 21:27
copperface
阅读(804)
评论(0)
推荐(0)
摘要:
有关运算符优先级 1. "<<" 和 "+" data8 = data4H << 4 +data4L; 这里本意是让高四位的数据,左移四位,然后和低四位相加,但是因为 “+”的运算符优先级 高于 "<<",所以会导致如下的情况: data8 = data4H << (4 +data4L); int 阅读全文
posted @ 2016-03-16 21:25
copperface
阅读(229)
评论(0)
推荐(0)
摘要:
vs2010使用C 1打开Microsoft Visual Studio 2010软件;依次打开“新建”、“项目”。2选择“win32控制台应用程序”,在窗口下面的名称填写好名称。3点击“下一步”继续。4在附加选项中选择“空项目”,然后点击“完成”。5在软件界面左边的"解决方案资源管理器"中的“源文件”上面右击鼠标一次选择“添加”、“新建项”。6在新窗口中选择“C++文件(.cpp)”,... 阅读全文
posted @ 2016-03-16 21:21
copperface
阅读(428)
评论(0)
推荐(0)
摘要:
1234567891011121314151617181920#include#includeint main(){ char word[100]; scanf( "%s",word); int len=strlen(word); for(int i=1;i<=len;i++) if(len%i==0) ... 阅读全文
posted @ 2016-03-16 21:18
copperface
阅读(366)
评论(0)
推荐(0)
摘要:
数组存储整数,模拟手算进行四则运算 阶乘精确值1234567891011121314151617181920212223242526#include#includeconst int maxn=3000;int f[maxn];int main(){ int i,j,n; scanf( "%d",&n); memset(f,0, sizeof(f));//清... 阅读全文
posted @ 2016-03-16 21:16
copperface
阅读(183)
评论(0)
推荐(0)
摘要:
分析:不能用scanf(“%s”),因为碰到空格或者Tab就会停下来。解决输入中有空格方法一:使用fgetc(fin),读取一个打开的文件fin,读取一个字符,然后返回一个int值,当文件结束,返回特殊标记EOF(int型的)。(使用fgetc(fin)可以从打开的文件fin中读取一个字符,一般情况下,应当在检查它不是EOF后再将其转化成为char值。从标准输入读取一个字符可以用getchar()... 阅读全文
posted @ 2016-03-16 21:15
copperface
阅读(170)
评论(0)
推荐(0)
摘要:
sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。1. 常见用法。123char buf[512] ;sscanf("123456 ", "%s", buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!printf("%s\n", buf);结果为:1234562. 取指定长度的字符串。如在下例中,取最大长... 阅读全文
posted @ 2016-03-16 21:13
copperface
阅读(232)
评论(0)
推荐(0)
摘要:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#include#include#includeint n;char word[ 1000][10 ],sorted[ 1000][10 ];//字符比较函数int cmp_char(const void * _a... 阅读全文
posted @ 2016-03-16 21:11
copperface
阅读(219)
评论(0)
推荐(0)
摘要:
1234567891011121314151617181920212223242526272829303132333435363738394041424344/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * Tr... 阅读全文
posted @ 2016-03-16 21:10
copperface
阅读(148)
评论(0)
推荐(0)
摘要:
1234567891011121314151617181920212223242526272829303132333435363738394041424344class Solution {public: string replaceSpace(string str) { stack Mystack; int length=str.length(); int bla... 阅读全文
posted @ 2016-03-16 21:09
copperface
阅读(121)
评论(0)
推荐(0)
摘要:
12345678910111213141516171819202122232425class Solution {public: void reOrderArray(vector &array) { vector newArray; queue evenArray; for(int i=0;i<array.size();i++) { ... 阅读全文
posted @ 2016-03-16 21:08
copperface
阅读(160)
评论(0)
推荐(0)
摘要:
1234567891011121314151617181920212223242526272829303132333435class Solution {public: double Power(double base, int exponent) { int isOdd; if(0.0==base)return 0; if(exponent>0) ... 阅读全文
posted @ 2016-03-16 21:08
copperface
阅读(148)
评论(0)
推荐(0)
摘要:
利用两个间隔为k的指针来实现倒数第k个1234567891011121314151617181920212223242526272829303132/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class S... 阅读全文
posted @ 2016-03-16 21:07
copperface
阅读(136)
评论(0)
推荐(0)
摘要:
way1:12345678910111213141516171819202122232425262728293031323334353637383940414243/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*... 阅读全文
posted @ 2016-03-16 21:06
copperface
阅读(182)
评论(0)
推荐(0)
摘要:
判断: 如果下一个弹出的数字刚好是栈顶元素,那么直接弹出如果下一个弹出的数字不在栈顶,我们要把压栈序列中,还没有入栈的数字压入辅助栈,知道把下一个需要弹出的数字压入栈顶如果所有的数字都入栈,但是仍然没有找到下一个弹出的数字,那么该序列不可能为弹出序列。123456789101112131415161718192021222324class Solution {public: bool Is... 阅读全文
posted @ 2016-03-16 21:05
copperface
阅读(315)
评论(0)
推荐(0)
摘要:
最后一个元素是 根节点。 左子树的元素都小于根节点,右子树都大于根节点然后递归判断123456789101112131415161718192021222324252627282930313233343536373839class Solution {public: bool VerifySquenceOfBST(vector sequence) { int size=seq... 阅读全文
posted @ 2016-03-16 21:04
copperface
阅读(937)
评论(0)
推荐(0)
摘要:
时间复杂度O(3N)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950/*struct RandomListNode { int label; struct RandomListNode *next, *random; RandomListNode... 阅读全文
posted @ 2016-03-16 21:02
copperface
阅读(305)
评论(0)
推荐(0)
摘要:
剑指offer 二叉搜索树与双向链表 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路,中序遍历压入vector,然后调整12345678910111213141516171819202122232425262728293031323334/*struct TreeNode { int val; struct... 阅读全文
posted @ 2016-03-16 21:02
copperface
阅读(409)
评论(0)
推荐(0)
摘要:
12345678910111213141516171819class Solution {public: int FindGreatestSumOfSubArray (vector array) { if(array .empty ())return 0; int sum =0; int max =-99999999; ... 阅读全文
posted @ 2016-03-16 21:00
copperface
阅读(153)
评论(0)
推荐(0)
摘要:
给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数。123456789101112131415161718192021222324252627282930313233343536class Solution {public: int NumberOf1Between1AndN_Solution (int n) { if(n1) ... 阅读全文
posted @ 2016-03-16 20:59
copperface
阅读(181)
评论(0)
推荐(0)
摘要:
输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 该算法没有利用数组是有序的这个信息,虽然算法时间也是O(n),但是空间消耗也是O(n)123456789101112131415161718192021222324252627282930313233343536373839404142434445#include #i... 阅读全文
posted @ 2016-03-16 20:56
copperface
阅读(235)
评论(0)
推荐(0)
摘要:
剑指offer 判断树是不是对称的 递归是很常见的实现方式,最简便。123456789101112131415161718192021222324252627/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : ... 阅读全文
posted @ 2016-03-16 20:55
copperface
阅读(150)
评论(0)
推荐(0)
摘要:
大多数人注意到元素是行列有序的,会马上想到对每行(或列)进行二分查找,每行(或列)需要logN时间,N行(或列)共需要NlogN时间,很容易写出如下代码1234567891011121314151617181920//注意到元素是行列有序的,会马上想到对每行(或列)进行二分查找,每行(或列)需要logN时间,N行(或列)共需要NlogN时间bool Find (vector > array, i... 阅读全文
posted @ 2016-03-16 20:52
copperface
阅读(188)
评论(0)
推荐(0)
摘要:
因为有序所以用二分法,分别找到第一个k和最后一个k的下标。时间O(logN)class Solution {public: int GetNumberOfK(vector data ,int k) { int num=0; int size=data.size(); if(size>0){ int num1=getfk(data... 阅读全文
posted @ 2016-03-16 20:31
copperface
阅读(153)
评论(0)
推荐(0)
摘要:
一个整型数组里除了两个数字之外,其他的数字都出现了两次(想到异或性质:任意数字和自己异或都是0,这样每个数字从头到尾异或一遍,出现两次的数字都被消掉了)。请写程序找出这两个只出现一次的数字。要求时间复杂度O(n),空间复杂度O(1)。异或运算符:^分析:利用异或的性质;异或每个数字,最后的结果是两个不同数字的异或结果。想办法把两个不同的数字分到两个数组中,分别异或;分组的方法:把所有数字在二进制下... 阅读全文
posted @ 2016-03-16 20:30
copperface
阅读(228)
评论(0)
推荐(0)
摘要:
Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.For example, Given [0,1,0,2,1,0,1,3,2,1,2,1], retu... 阅读全文
posted @ 2016-03-16 20:24
copperface
阅读(152)
评论(0)
推荐(0)
摘要:
第一种思路: 用栈第二种思路: 先遍历两个链表,得到各自长度,然后将长的那个链表先往后查找 两长度差的 步数。接着同时向后查找,直到找到相同的节点。class Solution {public: ListNode* FindFirstCommonNode( ListNode *pHead1, ListNode *pHead2) { int size1=0,size2... 阅读全文
posted @ 2016-03-16 20:24
copperface
阅读(164)
评论(0)
推荐(0)
摘要:
(1)一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。//递归方式 public static int f(int n) { //参数合法性验证 if (n 2时候循环求值 int res = 0; int a = 1; int b = 1; for (int ... 阅读全文
posted @ 2016-03-16 20:23
copperface
阅读(251)
评论(0)
推荐(0)
摘要:
算法-求二进制数中1的个数问题描述任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4这也是一道比较经典的题目了,相信不少人面试的时候可能遇到过这道题吧,下面介绍了几种方法来实现这道题,相信很多人可能见过下面的算法,但我相信很少有人见到本文中所有的算法。如果您上头上有更好的算法,或者本文没有提到的算法,请不要吝惜您的代... 阅读全文
posted @ 2016-03-16 20:22
copperface
阅读(239)
评论(0)
推荐(0)
摘要:
class Solution {public: int minNumberInRotateArray(vector rotateArray) { //常规的遍历方法时间是O(N)的,需要使用二分法,这样对于不重复的数组,就能实现O(logN)的时间 int l=0,r=rotateArray.size()-1; if(r=rotateArray[r]... 阅读全文
posted @ 2016-03-16 20:22
copperface
阅读(230)
评论(0)
推荐(0)
摘要:
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between tw... 阅读全文
posted @ 2016-03-16 20:21
copperface
阅读(173)
评论(0)
推荐(0)
摘要:
时间复杂度为O( log n )的方法: 该算法使用矩阵乘法操作,使得算法时间复杂度为 O(logN)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879... 阅读全文
posted @ 2016-03-16 20:20
copperface
阅读(780)
评论(0)
推荐(0)
摘要:
作者:July时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱。所以一直想找机会重新写下KMP,但苦于一直以来对KMP的理解始终不够,故才迟迟 阅读全文
posted @ 2016-03-16 20:18
copperface
阅读(258)
评论(0)
推荐(0)
摘要:
描述Given an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numbers such that they add up to the target, where... 阅读全文
posted @ 2016-03-16 20:16
copperface
阅读(158)
评论(0)
推荐(0)
摘要:
前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。 毕竟受文章和理论之限,本文摒弃绝大部分的细节,只谈方法/模式论,且注重用最通俗最直白的语言阐述相关问题。最后,有一点... 阅读全文
posted @ 2016-03-16 20:15
copperface
阅读(257)
评论(0)
推荐(0)
浙公网安备 33010602011771号