摘要:
一、100层楼,2个鸡蛋 阅读全文
摘要:
一、从5随机到7及其扩展 题目1:给定一个等概率随机产生1~5的随机函数rand1to5: 除此之外,不能使用任何额外的随机机制,请用rand1To5实现等概率随机产生1~7的随机函数random1To7。 解法: 第一步:rand1To5()等概率随机产生1,2,3,4,5 第二步:rand1To 阅读全文
摘要:
一、有关阶乘的两个问题 二、最大的leftMax与rightMax之差的绝对值 三、路径数组变为统计数组 四、一种字符串和数字的对应关系 五、1到n中1出现的次数 六、数字的英文表达和中文表达 七、分糖果问题 八、设计一个没有扩容负担的堆结构 九、随时找到数据流的中位数 十、在两个排序数组中找到第K 阅读全文
摘要:
一、不用额外变量交换两个整数的值 如果给定整数a和b,用以下三行代码即可交换a和b的值。a = a ^ b; b = a ^ b; a = a ^ b; 二、不用任何比较判断找出两个数中较大的数 问题:给定两个32位整数a和b,返回a和b中较大的。 1.得到a-b的值的符号,如果a-b的值出现溢出, 阅读全文
摘要:
一、布隆过滤器 问题:不安全网页的黑名单包含100亿个黑名单网页,每个网页的URL最多占用64B。现在想要实现一种网页过滤系统,可以根据网页的URL判断该网页是否在黑名单上,如何设计该系统。 要求:允许有万分之一以下的判断失误率;使用的额外空间不能超过30GB 思路:如果把黑名单中所有的URL通过数 阅读全文
摘要:
一、设计一个有getMin功能的栈 题目:实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。pop、push、getMin操作的时间复杂度都是O(1). 思路:设计两个栈,一个栈用来保存当前栈中的元素,其功能和一个正常的栈没有区别,这个栈记为stackData;另一个栈用来 阅读全文
摘要:
一、找到无序数组中最小的k个数 二、在数组中找到出现次数大于N/K的数 三、最长的可整合子数组的长度 四、不重复打印排序数组中相加和为给定值的所有二元组和三元组 五、未排序正数数组中累加和为给定值的最长子数组的长度 六、未排序数组中累加和为给定值的最长子数组系列问题 七、未排序数组中累加和小于或等于 阅读全文
摘要:
一、转圈打印矩阵 题目:给定一个整型矩阵matrix,按照转圈的方式打印它。 要求:额外空间复杂度为O(1) 思路:矩阵分圈处理问题。用矩阵中左上角的坐标(tR,rC)和右下角的坐标(dR,dC)就可以表示一个子矩阵。 例如:(0,0)和(3,3)表示的是原来矩阵的最外层,此时打印:1 2 3 4 阅读全文
摘要:
一、将整数字符串转成整数值 二、判断字符数组中是否所有的字符都只出现过一次 三、在有序但含有空的数组中查找字符串 四、数组中两个字符串的最小距离 五、添加最少字符使字符串整体都是回文字符串 六、括号字符串的有效性和最长有效长度 七、公式字符串求值 八、0左边必有1的二进制字符串数量 九、拼接所有字符 阅读全文
摘要:
一、判断两个字符串是否互为变形词 问题:给定两个字符串str1和str2,如果str1和str2中出现的字符种类一样且每种字符出现的次数也一样,那么str1与str2互为变形词。 举例:str1=“123”,str2=“231”,返回true。str1=“123”,str2=“2331”,返回fal 阅读全文
摘要:
一、环形单链表的约瑟夫问题 二、判断一个链表是否为回文结构 三、将单向链表按某只划分成左边小、中间相等、右边大的形式 四、复制含有随机指针节点的链表 五、两个单链表相交的一系列问题 六、将单链表的每K个节点之间逆序 七、将搜索二叉树转换成双向链表 阅读全文
摘要:
单链表Node节点类 双链表DoubleNode类 一、打印两个有序链表的公共部分 问题:给定两个有序链表head1和head2,打印两个链表的公共部分 解答:(1)如果head1的值小于head2,则head1向下移动。(2)如果head2的值小于head1的值,则head2向下移动。(3)如果h 阅读全文