Files
daily/interview/algorithm.md
T
2019-07-16 16:28:04 +08:00

7.6 KiB
Raw Blame History

1、封装一个函数,能将字符串“abcdef”逆序为“fedcba”。 2、如何让数组中的元素能够随机排序? 3、如何用二分查找在一个数组中搜索某个值,判断它是否在该数组中。 4、如何将数组中重复的元素只留一个,多余的全部去除掉。 5、如何查找数组中重复出现的元素。 6、如何找出数组中的最大差值。 7、如何求出两个数组的交集。 8、给定两段字符串,检测是否是改变字母顺序而成的字符串,例如“mena”是打乱“name”中的字母得到的。 9、如何实现链表的逆序。 10、如何从无序链表中移除重复项。 11、如何计算两个单链表所代表的数之和。 12、如何对链表进行重新排序。 13、如何找出单链表中的倒数第K个元素。 14、如何检测一个较大的单链表是否有环。 15、如何把链表相邻元素翻转。 16、如何把链表以K个结点为一组进行翻转。 17、如何合并两个有序链表。 18、如何在只给定单链表中某个结点的指针的情况下删除该结点。 19、如何判断两个单链表(无环)是否交叉。 20、如何实现栈。 21、如何实现队列。 22、如何翻转栈的所有元素。 23、如何根据入栈序列判断可能的出栈序列。 24、如何用O(1)的时间复杂度求栈中最小元素。 25、如何用两个栈模拟队列操作。 26、如何设计一个排序系统。 27、如何把一个有序的整数数组放到二叉树中。 28、如何从顶部开始逐层打印二叉树结点数据。 29、如何求一棵二叉树的最大子树和。 30、如何判断两棵二叉树是否相等。 31、如何把二叉树转换为双向链表。 32、如何判断一个数组是否是二元查找树后序遍历的序列。 33、如何找出排序二叉树上任意两个结点的最近共同父结点。 34、如何复制二叉树。 35、如何在二叉树中找出与输入整数相等的所有路径。 36、如何对二叉树进行镜像反转。 37、如何在二叉排序树中找出第一个大于中间值的结点。 38、如何在二叉树中找出路径最大的和。 39、如何找出数组中唯一的重复元素。 40、如何查找数组中元素的最大值和最小值。 41、如何找出数组中出现奇数次的数。 42、如何找出数组中第K小的数。 43、如何求数组中两个元素的最小距离。 44、如何求数组中绝对值最小的数。 45、如何求数组连续最大和。 46、如何找出数组中出现一次的数。 47、如何对数组旋转。 48、如何在不排序的情况下求数组中的中位数。 49、如何对数组进行循环移位。 50、如何在有规律的二维数组中进行高效的数据查找。 51、如何从三个有序数组中找出它们的公共元素。 52、如何对有大量重复数字的数组排序。 53、如何求一个字符串的所有排列。 54、如何求两个字符串的最长公共子串。 55、如何对字符串进行反转。 56、如何判断两个字符串是否为换位字符串。 57、如何判断两个字符串的包含关系。 58、如何对由大小写字母组成的字符数组排序。 59、如何判断字符串是否是整数。 60、如何实现字符串的匹配。 61、如何求字符串里的最长回文子串。 62、如何按照给定的字母序列对字符数组排序。 63、如何判断一个字符串是否包含重复字符。 64、如何统计字符串中连续的重复字符个数。 65、如何求最长递增子序列的长度。 66、如何让求一个字符串中出现的第一个最长重复子串。 67、如何判断一个字符串是否由另外一个字符串旋转得到。 68、如何截取包含中文的字符串。 69、如何判断一个自然数是否是某个数的二次方。 70、如何判断一个数是否为2的n次方。 71、如何不使用除法操作符实现两个正整数的除法。 72、如何只使用++操作符实现加减乘除运算。 73、如何判断1024!末尾有多少个0。 74、如何不用比较运算符和if条件语句比较两个数的大小。 75、如何求有序数列的第1500个数的值。 76、如何把十进制数分别以二进制和十六进制形式输出。 77、如何求二进制数中1的个数。 78、如何计算一个数的n次方。 79、如何在不能使用库函数的条件下计算正数n的算术平方根。 80、如何不使用^操作符实现异或运算。 81、如何不使用循环输出1100。 82、如何求正整数n所有可能的整数组合。 83、如何等概率地从大小为n的数组中选取m个整数。 84、如何组合1、2、5这三个数使其和为100。 85、如何从大量的URL中找出相同的。 86、如何从大量数据中找出高频词。 87、如何在大量的数据中找出不重复的整数。 88、如何在大量的数据中判断一个数是否存在。 89、如何从5亿个数中找出中位数。