1. 如何判断链表是否有环,如果有环返回入环节点
快指针,慢指针, 快指针每次走两步,慢指针每次走一步,如果二可以者相遇,则说明有环。当二者相遇的时候,将快指针重新指向头结点,然后快慢指针每次都走一步,相遇节点即为入环节点。
2. 无环单链表判断是否相交,相交返回第...
JInkun
7年前 (2015-12-01) 2434℃ 0评论
1喜欢
有一个整型数组 arr 和一个大小为 w 的窗口从数组的最左边滑到最右边,窗口每次向右边滑一个位置。 返回一个长度为n-w+1的数组res,res[i]表示每一种窗口状态下的最大值。 以数组为[4,3,5,4,3,3,6,7],w=3为例。因为第一个窗口[4,3,5]的最大值...
JInkun
7年前 (2015-11-27) 2920℃ 0评论
2喜欢
问题:
12个高矮不同的人,排成两排,每排6个人,每一排都从矮到高排列,且第二排都比对应的第一排的人要高,问共有多少种不同的排列方式?,如果一共有n(n为偶数)个人,一共有多少种排列方式?
解释:
这道题是一道隐藏很深的卡特兰数问题。
排列的形式如图所示,每排身高递增,...
JInkun
7年前 (2015-11-23) 2930℃ 1评论
3喜欢
求二进制串中最低位1的位置(末尾0的个数)方法很多,但是时间复杂度达到O(1)却很难,可以采用De Bruijn序列的方法。
概念解释:
1. De Bruijn序列:如果一个二进制串的长度为 2^n , 将其看成环形,首尾相连,从每一个字符开始进行n位截断,这样一...
JInkun
8年前 (2015-10-29) 2921℃ 0评论
7喜欢
大小端判断函数:
//判断大小端字节序void judgeEndian(){ int num = 0x01020304; char* pchar = (char*)# if(*pchar==0x01) { printf...
JInkun
8年前 (2015-10-29) 2595℃ 0评论
0喜欢
若求 a^b mod c:
1.如果b是偶数, a^b mod c = (((a^2) mod c )^(b/2) ) mod c
2.如果b是奇数, a^b mod c = (((a^2) mod c )^(b/2) *a) mod c
如果要求 a^b ...
JInkun
8年前 (2015-10-18) 7355℃ 0评论
39喜欢