上一页 1 ··· 7 8 9 10 11 12 13 下一页
摘要: 题目1.左旋数组中的查找(附:字符串左旋方法 的题目2)解法:将这个问题可以分解成子问题。要是带查找值落在单调有序区,那就直接二分查找了,落在左旋数组区,就递归查找。也可以把它简化成一个递归,就用fun,不用bs是一样的。题目2.左旋数组中的最小值解法:这题比上一个还简单,左旋数组的最小值一定出现在非单调部分,所以每次递归一半就行了。需要注意的就是递归终止条件,当数组最后剩下两个数的时候,这就是最小规模了,输出较小的数就行了。还有一点就是边界值 mid 也要放到下一次递归中,防止出现4,5,1,2,3 这种情况。#include <stdlib.h> int bs(int* a,i 阅读全文
posted @ 2012-10-01 20:00 23lalala 阅读(196) 评论(0) 推荐(0) 编辑
摘要: #include <stdlib.h>int intval(const char* str){ if(str==NULL){ return -1; } char* p = str; int result=0; int flag = 1; char c; while(c = *p++){ if(c=='-'){ flag = -1; } if(c>'0'&&c<'9'){ result = result*10+c-'0'; }... 阅读全文
posted @ 2012-10-01 11:01 23lalala 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 合并排序扩展题目1.求数组中反序对的个数解法:将数组进行合并排序,只要P2指针向后移动,反序个数就sum += mid-p1+1个。如图,将2加入结果,<3,2> <5,2>都是反序的。2.荷兰国旗问题o(n)时间,o(1)空间,将0,1,2三个数排好序。解法:排好序的数组分为三个区,最左边是0,最右边是2,其余的都在中间。利用这个思想,维护三个变量begin,current,end其中在begin左边的都是0,在end右边的都是2。current一直遍历到current=end。具体步骤:1、current遍历,整个数组序列,current指1不动,2、current 阅读全文
posted @ 2012-10-01 10:25 23lalala 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 逻辑与运算任何时候,只要两个表达式的某位都为 1,则结果的该位为 1。否则,结果的该位为 0。1&0=00&1=00&0=01&1=1逻辑与的性质1.可以将任意位清零比如与一个00001111 就是将一个8位数的高4位清零,保留低4位。同理也可以与11110000 将低4位清零。2.N&(N-1)每一次将N二进制从低位到高位第一个1清零。相关题目1.判断一个数N的奇偶性利用性质1 将N&1 也就是将除了最后一位都清零,如果结果是1就是奇数,不然就是偶数。2.判断一个数是2的N次方因为2的N次方二进制一定是10..00的形式,利用性质2 将N&am 阅读全文
posted @ 2012-09-29 09:10 23lalala 阅读(1438) 评论(0) 推荐(0) 编辑
摘要: 题目1.反转单词。输入hello world。输出world hello将hello world整体做一次strrev(),变成dlrow olleh再每个单词strrev(),变成world hello题目2.左旋N位字符。输入abcdef和2。 输出cdefab将输入的前N位做strrev()操作,得到bacdef再对后len()-N位做strrev()操作,得到bafedc最后对整体做strrev()操作,得到cdefab其实两次strrev()相当于是换位的作用。题目3.将字符串中的空格替换成%20从后往前复制,每个字符最多只移动一次就OK了,减少了重复的移动。题目4.字符串的全排列i 阅读全文
posted @ 2012-09-28 23:25 23lalala 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 异或运算相同结果是0,不同结果是1性质1.a^b = b^a2.(a^b)^c = a^(b^c)3.a^a = 0; a^0 = a;4.a^b^b = a^0=a;问题1.找一个只出现一次,其余都出现两次的数。根据性质3,将所有数做与运算问题2.找一个出现奇数次,其余出现偶数次的数。和问题1一样问题3.给定数字集合在1-1000之间的1001个数,找一个出现两次,其余都出现1次的数。1^2^...^1000=T1^2^...^1001=X假设n只出现两次T^X=1^1^2^2...^n^n^n...^1000^1000=n^0=n问题4.找出有两个不同的数只出现一次,其余都是出现两次将所有 阅读全文
posted @ 2012-09-28 09:55 23lalala 阅读(268) 评论(0) 推荐(0) 编辑
摘要: #include <stdlib.h>#include <stdio.h>#include <string.h>#include <malloc.h>#include <math.h>typedef struct bucket{ int h; char* key; void* pData; struct bucket* pNext; struct bucket* pLast;}Bucket;typedef struct hashtable{ int size; int elementsNum; int mask; Bucket** a 阅读全文
posted @ 2012-09-26 11:36 23lalala 阅读(335) 评论(0) 推荐(0) 编辑
摘要: PHP的启动PHP的启动经历了PHP_MINIT_FUNCTION->PHP_RINIT_FUNCTION->PHP_RSHUTDOWN_FUNCTION->PHP_MSHUTDOWN_FUNCTION4个阶段。但是 这4个阶段会由于SAPI宿主的不同在不同阶段执行。如果把PHP比作汽车,那么SAPI就是公路。常见的SAPI可以是CLI/CGI一个请求过来,会执行以上4个阶段。多进程模型以APACHE的PRE-FORK为代表,在此模式下,APACHE会设定一个初始进程数量,然后请求增多以后,会以2的指数次方创建进程。多线程模型以APACHE的worker为代表,在这种模式下, 阅读全文
posted @ 2012-09-26 11:35 23lalala 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 1.serialize和unserialize函数2.json_encode 和 json_decode3.var_export 和 eval4.wddx_serialize_value 和 wddx deserialize 阅读全文
posted @ 2012-09-26 11:34 23lalala 阅读(208) 评论(0) 推荐(0) 编辑
摘要: sort 按照值排序 删除 键名 usort 带回调函数的比较。比较的是值uasort 和usort相同uksort 带回调的比较。比较的是键ksort 按照键排序 保留 键值对应关系asort 按照值排序 保留 键值对应关系 阅读全文
posted @ 2012-09-26 11:33 23lalala 阅读(94) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 下一页