摘要:
有100盏灯泡,第一轮点亮所有电灯,第二轮每两盏灯熄灭一盏,即熄灭第2盏,第4盏,以此类推,第三轮改变编号为3的倍数的电灯,第3盏,第6盏,如果原来那盏灯是亮的,就熄灭它,如果原来是灭的,就点亮它,以此类推,直到第100轮。问第100结束后,还有多少盏灯泡是亮的?解答:由题意最如果最后某一盏灯是亮着的,那么它一定是被切换了奇数次(第0次的时候全部都关着)。首先来看一下6这盏灯,它被切换的次数是第1次(轮),第2次,第3次和第6次。可以看出如果某一轮6被切换了,那么该轮数一定可以整数6,即是6的约数,由于约数是成对出现的,所以6被关掉的次数是偶数次。但是是对于像4,16这样的完全平方数,由于他们 阅读全文
摘要:
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个[原理]我们知道,根据编码的不同,汉字在字符串中所占字节也不一样,如果是UTF-8编码,汉字占3个字节,如果是GBK编码(本文利用的是GBK编码的实现),汉字占2个字节。但是,英文单词在字符串中,始终占用1个字节。所以,把字符串先转化为字符数组和字节数组,然后同时遍历两个数组,比较在数组同位置的值是否相等,如果相等,那么说明该字符是英文字符,如果不相同则说明该字符是中文字符,同 阅读全文
摘要:
Reverse digits of an integer.Example1:x = 123, return 321Example2:x = -123, return -321click to show spoilers.Have you thought about this?Here are some good questions to ask before coding. Bonus points for you if you have already thought through this!If the integer's last digit is 0, what should 阅读全文
摘要:
文章来源:勇幸|Thinking(http://www.ahathinking.com) 昨天和今天学习了并查集和trie树,并练习了三道入门题目,理解更为深刻,觉得有必要总结一下,这其中的内容定义之类的是取自网络,操作的说明解释及程序的注释部分为个人理解。并查集学习:并查集:(union-find sets)一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多,如其求无向图的连通分量个数等。最完美的应用当属:实现Kruskar算法求最小生成树。并查集的精髓(即它的三种操作,结合实现代码模板进行理解):1、Make_Set(x) 把每一个元 阅读全文
摘要:
1.判断一个数是否是2的幂次?(number & number - 1) == 0原因:因为2的N次方换算是二进制为10……0这样的形式(0除外)。与上自己-1的位数,这们得到结果为0。例如。8的二进制为1000;8-1=7,7的二进制为111。两者相与的结果为0。1 public static boolean checkPow(int x) {2 return ((x & (x - 1)) == 0);3 }2.求一个数n的二进制中1的个数?非常巧妙地利用了一个性质,n=n&(n-1) 能移除掉n的二进制中最右边的1的性质,循环移除,直到将1全部移除,这种方法将问题的 阅读全文
摘要:
http://www.mitbbs.com/article_t1/JobHunting/32539885_0_2.htmlhttp://leetcode.com/2010/09/serializationdeserialization-of-binary.htmlBST 序列化到文件中:http://blog.csdn.net/sgbfblog/article/details/7774347http://leetcode.com/2010/09/saving-binary-search-tree-to-file.html 阅读全文
摘要:
异或运算相当与mod 2运算:1^1 = 0, 1^0 = 1, 0^1= 1, 0 ^ 0 = 0(1+1)%2 = 0, (1+0)%2 = 1,(0+1)%2 = 1,(0+0)%2 = 0Single Number II这题从所有出现3次的数组中找只出现一次的数,相当于mod 3运算以下部分为转载:转载:http://blog.csdn.net/kingoverlord/article/details/8825721不使用第三方变量交换两个变量的值这需要进行位操作,必较麻烦的,在学习程序语言和进行程序设计的时候,交换两个变量的值是经常要使用的。通常我们的做法是(尤其是在学习阶段):定义 阅读全文
摘要:
Given a stringsand a dictionary of wordsdict, add spaces insto construct a sentence where each word is a valid dictionary word.Return all such possible sentences.For example, givens="catsanddog",dict=["cat", "cats", "and", "sand", "dog"].A 阅读全文
摘要:
Given a stringsand a dictionary of wordsdict, determine ifscan be segmented into a space-separated sequence of one or more dictionary words.For example, givens="leetcode",dict=["leet", "code"].Return true because"leetcode"can be segmented as"leet code&quo 阅读全文
摘要:
http://blog.csdn.net/xiaoerlyl/article/details/12126807别人写的答案:http://blog.csdn.net/zhou2214/article/details/12145057?ADUIN=517322900&ADSESSION=1380417460&ADTAG=CLIENT.QQ.5216_.0&ADPUBNO=26228这题我写的时间复杂度为O(n^2), 网上搜了下貌似有O(n)的解法找到中间结点,和前面断开,将后半部分链表逆序,然后与前一个链表进行归并,即可得到目标结果 阅读全文