题目: Jeff loves playing games, Gluttonous snake( an old game in&nb…
分类:递归
(算法)格雷码
题目: The gray code is a binary numeral system where two successive values differ in only one bit. Given a non-n…
(笔试题)最小的非“重复的数”
题目: 给一个定义:对一个整数,若其中存在相邻两位上的数字相同,则称其为“重复的数”;现给定一个正整数n,求不小于n的最小的非“重复的数”。 思路: 假设输入的数为n,则令m=n, 分别取m的最低两位数字a,b, 判断是…
(算法)二叉树中两个结点的最近公共父结点
题目: 二叉树中两个结点的最近公共父结点 二叉树结点的定义如下: struct TreeNode{ int val; TreeNode *left; TreeNode *right; }; 思路: 前面在剑指…
(剑指Offer)面试题59:对称的二叉树
题目: 请实现一个函数,用来判断一颗二叉树是不是对称的。 注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 思路: 对于一棵二叉树,从根结点开始遍历, 如果左右子结点有一个为NULL,那么肯定不是对称二叉树…
(算法)Hanoi Problem汉诺塔问题
Problem: There are three poles and N disks where each disk is heaver than the next disk. In the initial congur…
(剑指Offer)面试题45:圆圈中最后剩下的数字
题目: 0,1,…n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字,求出这个圆圈里剩下的最后一个数字。 思路: 1、环形链表模拟圆圈 创建一个n个节点的环形链表,然后每次在这个链表中删…
(剑指Offer)面试题43:n个骰子的点数
题目: 把n个骰子仍在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 思路: s可能出现的值的范围为:n–6*n 1、全排列 回溯法枚举n个骰子(6面)的全排列,然后计算每一…
(剑指Offer)面试题39:二叉树的深度
题目: 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 结点的定义如下: struct TreeNode{ int val; TreeNode* …
(剑指Offer)面试题32:从1到n整数中1出现的次数
题目: 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11和12,一共出现了5次。 思路: 1、累加法 累加1到n中每个整数1出现的次数。 求每…
(剑指Offer)面试题28:字符串的排列
题目: 输入一个字符串,打印出该字符串中字符的所有排列。 例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 思路: 把一个字符串看成两部分…
(剑指Offer)面试题19:二叉树的镜像
题目: 操作给定的二叉树,将其变换为源二叉树的镜像。 二叉树的定义如下: struct TreeNode{ int val; TreeNode* left; TreeNode* right; }; 输入描述:…