一直做梦的猫

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年5月30日

摘要: var Sizzle = function( selector, context, results, seed ) {......}jQuery选择器主体流程分析:1.将selector第一个逗号(如果有的话)之前的部分解析为若干个块表达式(例如"div > span.big"将被解析为"div", ">", "span.big"三个表达式块),存入parts数组中,逗号之后的字符串存入extra中2.如果parts中元素个数大于1,且selector中包含位置表达式,则采用left->right 阅读全文
posted @ 2013-05-30 12:19 一直做梦的猫 阅读(153) 评论(0) 推荐(0)

摘要: jQuery的数据缓存机制对于js Object和DOM node分别存在两种方式:情况一:对于js Object,数据就存储在Object本身,只不过数据都存储在Object下一个以“jQuery”开头的属性之下例如:var obj = {};$.data(obj, "username", "scott"); console.log(obj);此时obj为:{ jQuery16302287385049276054:{ username: "scott" }}情况二:对于DOM node,数据则存储在jQuery.cache之中nod 阅读全文
posted @ 2013-05-30 10:33 一直做梦的猫 阅读(227) 评论(0) 推荐(0)

2013年5月29日

摘要: 转载自:http://www.cnblogs.com/meteoric_cry/archive/2010/09/14/1825951.htmlIE中内存泄露的几种方式:1、循环引用(Circular References) — IE浏览器的COM组件产生的对象实例和网页脚本引擎产生的对象实例相互引用,就会造成内存泄漏。这也是Web页面中我们遇到的最常见和主要的泄漏方式;2、内部函数引用(Closures) — Closures可以看成是目前引起大量问题的循环应用的一种特殊形式。由于依赖指定的关键字和语法结构,Closures调用是比较容易被我们发现的;3、页面交叉泄漏(Cross-Page L 阅读全文
posted @ 2013-05-29 10:42 一直做梦的猫 阅读(137) 评论(0) 推荐(0)

2013年5月15日

摘要: jQuery源码分析-03构造jQuery对象-工具函数这篇文章对jQuery中扩展的一些工具函数做了下简要分析关于isPlainObject函数,isPlainObject分析与重构这篇文章指出其存在bug,history,location,navigator,screen可以顺序通过 isPlainObject的检测返回true.经本人测试,在ie8中确实存在bug返回true,但chrome中则返回的是false。经过仔细分析发现bug原因,若obj = window.location, 在ie8中第二个if语句的第一个判断条件obj.constructor的值为undefined,而在 阅读全文
posted @ 2013-05-15 15:32 一直做梦的猫 阅读(225) 评论(0) 推荐(0)

2013年5月13日

摘要: 假设原数组序列为abcd1234,要求变换成的数组序列为1234abcd,即循环右移了4位。比较之后,不难看出,其中有两段的顺序是不变的:1234和abcd,可把这两段看成两个整体。右移K位的过程就是把数组的两部分交换一下。变换的过程通过以下步骤完成:1. 逆序排列abcd:abcd1234 → dcba1234; 2. 逆序排列1234:dcba1234 → dcba4321; 3. 全部逆序:dcba4321 → 1234abcd。void reverse(char arr[], int left, int right) { for(int i = left, j = right; ... 阅读全文
posted @ 2013-05-13 18:10 一直做梦的猫 阅读(332) 评论(0) 推荐(0)

摘要: 方法一:将数组a[]排序为数组b[],比较两个数组,如果a[i]==b[i],则a[i]即为一个这样的数。时间复杂度为O(NlogN)。方法二:维护两个数组min[]和max[],max[i]为a[i]左边的数的最大值,min[i]为a[i]右边的最小值,扫描两遍数组就可得到,再比较,如果max[i]<=a[i]<=min[i],则a[i]是一个这样的数。void findElems(int arr[], int length) { int *maxL = new int[length]; int *minR = new int[length]; for(int i = 0;... 阅读全文
posted @ 2013-05-13 15:58 一直做梦的猫 阅读(278) 评论(0) 推荐(0)

摘要: bool isPopOrder(int pushA[], int popA[], int length) { stack<int> st; int i = 0, j = 0; while(i < length && j < length) { st.push(pushA[i++]); while(!st.empty() && popA[j] == st.top()) { st.pop(); j++; } } return (st.empty() && j == length);} 阅读全文
posted @ 2013-05-13 15:57 一直做梦的猫 阅读(155) 评论(0) 推荐(0)

摘要: 平衡点:比如int numbers[]={1,3,5,7,8,25,4,20}; 25前面的总和为24,25后面的总和也是24,25这个点就是平衡点。假如一个数组中的元素,其前面的部分等于后面的部分,那么这个点的位序就是平衡点,要求返回任何一个平衡点。int findBalanceNum(int arr[], int length) { int *left = new int[length]; int *right = new int[length]; for(int i = 0; i < length; i++) { if(i == 0) { ... 阅读全文
posted @ 2013-05-13 15:56 一直做梦的猫 阅读(277) 评论(0) 推荐(0)

摘要: 写一个函数找出一个整数数组中第二大的数const int MINNUMBER = -32767;int find_sec_max(int data[], int count){ int maxnumber = data[0]; int sec_max = MINNUMBER; for(int i = 1; i < count; i++) { if(data[i] > maxnumber) { sec_max = maxnumber; maxnumber = data[i]; } ... 阅读全文
posted @ 2013-05-13 15:52 一直做梦的猫 阅读(273) 评论(0) 推荐(0)

2013年5月10日

摘要: 给定一个数组a[N],我们希望构造数组b [N],其中b[j]=a[0]*a[1]…a[N-1] / a[j],在构造过程中,不允许使用除法:要求O(1)空间复杂度和O(n)的时间复杂度;除遍历计数器与a[N] b[N]外,不可使用新的变量(包括栈临时变量、堆空间和全局静态变量等)解析:设b[0]=1由b[i]=b[i-1]*a[i-1]可得b[1] = a[0]b[2] = a[0]a[1]…b[i] = a[0]a[1]a[2]…a[i-1]…b[n-1] = a[0]a[1]…a[n-2]那么再通过b[0]这个变量来迭代出1, a[n-1], a[n-2]a[n-1], a[n-3]a[ 阅读全文
posted @ 2013-05-10 17:25 一直做梦的猫 阅读(172) 评论(0) 推荐(0)