kongkong
首页
归档
分类
标签
关于
剑指Offer——(23)二叉搜索树的后序遍历序列
* 最近几天被推荐参加互联网+比赛,一直忙着团队前期工作。。拖更了。。 *题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 实现如下: //找规律 // 8 // 6 10 //5 7 9 11 //{5,7,6,9,11,10,8} //
2020-06-29
Data Structures and Algorithms
剑指Offer
棋盘覆盖问题算法分析与实现(递归)
昨天上传的代码,经过再次测试发现有问题,其中对边界、终止条件的判断都有错误。。。→_→,今天重新改正,对之前看过代码的童鞋表示sorry。。。(2017.5.13 16:24) 问题描述: 在一个2^k×2^k (k≥0)个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为特殊方格。显然,特殊方格在棋盘中可能出现的位置有4^k种,因而有4^k种不同的棋盘。棋盘覆盖问题(chess cove
2020-06-29
Data Structures and Algorithms
Leetcode
整数划分问题算法分析与实现(递归)
问题描述: 把一个正整数n写成多个大于等于1且小于等于其本身的整数的和,则其中各加数所构成的集合为n的一个划分。把一个正整数n写成为 n=m1+m2+…+mi。其中,mi为正整数,并且1≤mi≤n;{m1,m2,…,mi}为n的一个划分。如{m1,m2,…,mi}果中的最大值不超过m,即max(m1,m2,…,mi)≤m,则称它属于n的一个m划分。 关于整数划分和生成函数的具体概念请戳传送门:
2020-06-29
Data Structures and Algorithms
Leetcode
求子集问题算法分析与实现(递归、非递归)
问题描述: 若有数字集合{1,2,3},则其子集为NULL、{1}、{2}、{3}、{1,2}、{1,3}、{2,3}、{1,2,3}。现给定数组,求其的全部子集。 实现如下: //非递归 //{1,2,3} // 0 0 0 // 0 0 1 // 0 1 0 // 0 1 1 // 1 0 0 // 1 0 1 // 1 1 0 // 1
2020-06-29
Data Structures and Algorithms
Leetcode
全排列问题算法分析与实现(递归、非递归)
问题描述: 若有数字集合{1,2,3},则其全排列为123、132、213、231、321、312。现给定字符数组,求其字符的全排列。 实现如下: //1.递归方法 //如例,其全排列可以分成 //1->{2,3} //2->{1,3} //3->{2,1} //再递归求其剩余字符的全排列 //重点在于如何交换字符
2020-06-29
Data Structures and Algorithms
Leetcode
剑指Offer——(22)从上往下打印二叉树&&层次遍历
题目描述: 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 实现如下: //层次遍历时使用队列容器,保证先进先出 //分别判断节点的左右孩子是否为空 //非空就将孩子节点尾插 //每次都从队头获取打印值、头删出队 //队列为空时说明遍历结束 //注意判断root是否合法 class Solution { public: deque<TreeNode*> q;/
2020-06-28
Data Structures and Algorithms
剑指Offer
剑指Offer——(21)栈的压入、弹出序列
题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 实现如下: //模拟栈的push与pop,利用辅助栈 //在线测试用例中给出了pus
2020-06-28
Data Structures and Algorithms
剑指Offer
剑指Offer——(20)包含min函数的栈
题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 实现如下: //利用一个辅助栈,用来存放和数据栈相对应的每层之下的最小值 //利用minValue存储当前最小值,O(1) class Solution { public: int minValue = 0; stack<int> assistStack; stack<int
2020-06-28
Data Structures and Algorithms
剑指Offer
剑指Offer——(19)顺时针打印矩阵
题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 实现如下: /* 1 -> 2 -> 3 -> 4 ↓ 5 -
2020-06-28
Data Structures and Algorithms
剑指Offer
剑指Offer——(18)二叉树的镜像
题目描述: 操作给定的二叉树,将其变换为源二叉树的镜像。 实现如下: //每一个节点都是每一棵子树的根节点,只须交换左右孩子节点即可 //注意输入空指针防御 /*输入样例 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8
2020-06-28
Data Structures and Algorithms
剑指Offer
1
…
7
8
9
10
11
12
搜索
×
关键词