Cracking Coding Interview
ojshilu
https://github.com/lucky521
展开
-
Chapter 1 笔记 数组和字符串
1.1 对字符串的字符作统计 作统计,需要辅助空间,越省越好。判断有没有重复的字符(每种字符用1bit即可),也可以判断出现次数最多的字符(每种字符用一个unsigned int)。 下面是统计是否有重复字符。 int isUniqueChar(String str) { int checker = 0; //32位int型足够存下26个字符 for(int i=0;i<str.原创 2013-08-22 14:50:11 · 890 阅读 · 0 评论 -
Set Matrix Zeroes
题目源自于Leetcode和Cracking Coding Interview。 题目:Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. 思路:如果直接遍历整个矩阵,遇到0就把当前行当前列设为全0,那么最终会错误地将整个矩阵全变为0。所以要先过一遍,记住哪一原创 2013-11-25 15:29:27 · 1173 阅读 · 0 评论 -
八皇后问题 EightQueen
题目:在8×8的国际象棋上摆放八个皇后,使其不能相互攻击,即要求任意两个皇后不得处在同一行、同一列或者同一对角斜线上。求出总共有多少种摆法。 思路: 对于不在同行且不在同列的摆法,8行每行各有一个皇后,那么就是在8列中进行全排列,很明显有8!种情况。在这8!中情况中,再排除对角斜线上在出现冲突的情况。 对于排列组合类型的问题,经常采用递归方式来解决。 数据结构:因为每行原创 2013-11-01 20:01:34 · 2139 阅读 · 0 评论 -
Chapter 6 笔记 智力题 Brain Teasers
6.1 6.2 6.3 6.4 6.5 6.6原创 2014-02-24 14:51:11 · 1131 阅读 · 0 评论 -
十进制数转换为二进制数
这是个非常基础的问题。一般在计算机引论书籍中的第一章出现。 对于十进制数的整数部分,一般使用除2取余法。 每次模2取得余数,然后除以2。直到除成0为止。将余数倒置相连就得到整数部分对应的二进制数。 除2取余法的理论依据是,整数部分的权值是2的幂数,每次除2都是将整体的权值右移一位,模2是取得最右边的数值。 对于十进制数的小数部分,一般使用乘2取整法。 不断乘2,如果结果小原创 2014-02-20 20:15:51 · 2019 阅读 · 0 评论 -
Chapter 3 笔记 栈和队列
3.1 用一个数组实现3个栈 3.2设一个栈,能迅速返回栈中当前最小值。 3.3原创 2013-08-26 19:06:17 · 867 阅读 · 0 评论 -
Chapter 2 笔记 链表
2.1去除无序链表中的重复字符 如果不允许临时变量的话,就需要双循环遍历了。 2.2找到链表的倒数第n个结点。 2.3删除链表上的某个结点。 2.4 2.5判断带环链表中环的开始结点。原创 2013-08-26 18:58:10 · 849 阅读 · 0 评论 -
Chapter 5 笔记 位操作
5.1 把N中i位到j位之间的位设为M。 5.2 把一个字符串表示的十进制数转换为二进制数输出。 5.3 5.4 ((n & (n-1)) == 0) 的作用。 5.5 计算两个整数的二进制位的差别(有多少个位不同)。 5.6 将一个整数的相邻的奇数bit和偶数bit交换。 5.7 n个元素的数组存储了0~n的n+1个数中的n个,只有原创 2013-11-26 17:49:51 · 702 阅读 · 0 评论 -
Chapter 4 笔记 树和图
4.1 判断一颗二叉树是否是平衡二叉树。 http://blog.csdn.net/ojshilu/article/details/15338075 4.2 有向图中的两个结点,判断是否存在可达的路径。 4.3 根据一个有序数组,构造一个高度最小的二叉树(平均查找长度最小)。 4.4 给出一个二叉查找树,为其每一层的结点分别构造单链表。 4.5 给出一原创 2013-11-26 17:22:34 · 816 阅读 · 0 评论 -
全排列生成 Permutations
题目源自于leetcode。 题目:Given a collection of numbers, return all possible permutations. For example, [1,2,3] have the following permutations: [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], and [3,2,1].原创 2013-11-13 18:44:50 · 1512 阅读 · 0 评论