摘要: 题目一: 给定一个整形数组arr和一个大于1的整数k。已知arr中只有1个数出现了奇数次,其他的数都出现了偶数次,请返回出现了奇数次的数。 时间复杂度为O(N),额外空间复杂度为O(1)。 思路: 整数n与0异或的结果是n,整数n与整数n异或的结果是0.所以先申请一个整形变量,记为eO。把eO和每个 阅读全文
posted @ 2016-01-27 17:35 小魔仙 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 一、不用额外变量交换两个整数的值 a=a^b; b=a^b; a=a^b; 或者: a=a+b; b=a-b; a=a-b; 二、不用任何比较判断找出两个数中较大的数 有两种方法,方法一有一定的局限性,a-b的值可能溢出,这样溢出后符号改变,返回结果就不正确。 而方法二对a和b是否异号进行了判断,如 阅读全文
posted @ 2016-01-27 01:06 小魔仙 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 题目一:32位无符号整数的范围是0-2^32-1即0-4294967295,现在有一个正好包含40亿个无符号整数的文件,所以在整个范围中必然有没出现的数。可以使用最多1GB的内存。1.怎么知道所有没有出现过的数?哈希表需要占用很多空间,可以使用bit map的方式来表示数出现的情况。具体地说,是申请... 阅读全文
posted @ 2016-01-26 21:09 小魔仙 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 一、只用2GB内存在20亿个整数(32位)中找到出现次数最多的数解题思路:想要在很多整数中找到出现次数最多的数,通常的做法是使用哈希表对出现的每一个数做词频统计,哈希表的key是某一个整数,value是这个数出现的次数。就本题来说,一共有20亿个数,哪怕只是一个数出现了20亿次,用32位的整数也可以... 阅读全文
posted @ 2016-01-26 20:09 小魔仙 阅读(581) 评论(0) 推荐(1) 编辑
摘要: 题目:如果一个字符串str,把字符串str前面任意的部分挪到后面形成的字符串叫做str的旋转词。判断两个字符串是否互为旋转词。思路:如果两个字符串的长度不一样,返回false;如果一样,将其中一个字符串*2,比如“abcd”生成新的字符串“abcdabcd”,如果新生成的字符串中含有另一个字符串,那... 阅读全文
posted @ 2016-01-25 21:26 小魔仙 阅读(921) 评论(0) 推荐(0) 编辑
摘要: 题目:给定一个字符串str和一个整数k,如果str中正好有k个‘0’字符出现时,把k个连续的‘0’字符去除,返回处理后的字符串。举例:str=”A00B”,k=2,返回“AB”str=”A0000B000”,k=3,返回“A0000B”思路:两个变量:1.count表示连续0的个数,初始值为02.s... 阅读全文
posted @ 2016-01-25 17:08 小魔仙 阅读(846) 评论(0) 推荐(0) 编辑
摘要: 题目:给定一个字符串str,求其中全部数字串所代表的数字之和。要求:1.忽略小数点2.考虑‘-’,如果有连续奇数个,则为负,如果有连续偶数个,就为正数。举例:str=“A-1B--2C--D6E” return 7思路:变量设置:1.int res表示结果2.int num表示当前数字3.int c... 阅读全文
posted @ 2016-01-25 12:50 小魔仙 阅读(1266) 评论(1) 推荐(0) 编辑
摘要: 一、判断两个字符串是否互为变形词:题目:如果两个字符串中字符的种类相同并且每种字符出现的次数也相同,那么这两个字符串互为变形词。解法一:该方法适合只包含8位字符集的字符串,不适合包含中文的字符串比较。思路:首先判断两个字符串的长度,如不同直接返回false;如果相同,则创建一个长度为256的整型数组... 阅读全文
posted @ 2016-01-24 17:29 小魔仙 阅读(925) 评论(0) 推荐(0) 编辑