分类
C++ Develop 算法

CCI题目4-3:Tree from Sorted Array

直接二分数组,第一次二分得到的是根节点,对左半部分二分出来的树是左子树,有半部分二分出来的树是右子树,这样递归 […]

分类
C++ Develop 算法

CCI题目4-2:判断图中的两个节点是否连通

用广度优先遍历做就行了。 代码只写了核心,旁边的额辅助函数只定义了而已。 题目 Given a directe […]

分类
C++ Develop 算法

CCI题目4-1:Check Balance of a Binary Tree,二叉树的基本算法

这里我把题目理解为,任意两个叶子节点(左右子树都空)的深度不超过1. 那就计算一下一棵树的叶子节点中最大的深度 […]

分类
C++ Develop 算法

CCI题目:3-6:Stack Sort

其实是冒泡排序,两个stack来回倒腾。 代码展示的是比较直观的算法,对st排序,用另一个栈buffer作为辅 […]

分类
C++ Develop 算法

CCI题目3-5:Queue using Two Stacks

用两个stack来模拟queue。 一个叫做instack,一个叫做outstack。 当push的时候,将所 […]

分类
C++ Develop 算法

CCI题目3-4:Hanoi Tower

这是一个经典问题,经典解法。要将n个盘子从stack0,移动到stack2,只需要做以下三步: 1.将n-1个 […]

分类
C++ Develop 算法

CCI题目3-3:Set Of Stacks

就用一个vector来装所有的stack。 遇到push操作,先查看最后一个stack有没有装满。没有的话直接 […]

分类
C++ Develop 算法

CCI题目3-2:Min Stack

开始想的只需要track每个push进来的条目,就可以在O(1)返回最小元素了。push()没问题,但是pop […]

分类
C++ Develop 算法

CCI题目3-1:Three Stacks in One Array

一个简单的办法是把array均分成三段,每段用作一个stack; 更灵活的方法是把这个array当链表用。每个 […]

分类
C++ Develop 算法

CCI题目2-5:Find Loop

建一个hash来做,从前往后扫描,遇到重复的输出就可以了。(findLoop) 最后有c++中map的简单实用 […]

分类
C++ Develop 算法

CCI题目2-4:Add Two Numbers in Link List

同Leetcode题目:Leetcode题目:两个链表数相加 题目 You have two numbers […]

分类
C++ Develop 算法

CCI题目2-3:Remove Node at Middle of a Link List

两个指针,一个在前面跑,一个跟在后面,前面的跑两步,后面的跑一步。最后删除后面指针指向的那个节点即可。 题目 […]

分类
C++ Develop 算法

CCI习题2-2:nTh From the last

画一个链表出来,实际看看就知道怎么写了。 用一个pointer pRun在前面从pHead先跑n个位置。(如果 […]

分类
C++ Develop 算法

CCI习题2-1: Remove Duplicates

如果可用缓存的话,可以建一个hashtable,然后track每一个值有没有出现过; 否则的话,只能O(n2) […]

分类
C++ Develop 算法

CCI习题1-8:Is Rotation

先判断长度是否相等; 然后将第一个字符串s0和自己连接变成s00,调用isSubstring,判断s1是否是s […]

分类
C++ Develop 算法

CCI习题1-7:Set Matrix Zeroes

Write an algorithm such that if an element in an MxN ma […]

分类
C++ Develop 算法

CCI习题1-6:Rotate Image

Given an image represented by an NxN matrix, where each […]

分类
C++ Develop 算法

CCI习题1-5:Replace Space

用gets可以输入带空格的字符串,遇到enter结束。 第一遍扫描获得输入字符串的长度len和其中空格的个数s […]

分类
C++ Develop 算法

CCI习题1-4:Anagrams

第一个方法直接将输入字符串排序,然后比较。 时间复杂度是O(nlogn),空间是O(1) 第二个方法是hash […]

分类
C++ Develop 算法

CCI习题1-3:Remove Duplications in String

直接从头到尾扫描,用一个int来做hash表。 代码默认输入字符在’a’ &#8211 […]

分类
C++ Develop 算法

CCI习题 1-2:Reverse C String

从0到len / 2 – 1,交换cstr[i] 和 cstr[len – 1 &#8 […]

分类
C++ Develop 算法

CCI习题1-1:String Contain Unique Char

CCI指《Cracking the Coding Interview》. 用一个int做为hash表,记录每个 […]