有了上面的教训,这道题就简单多了,什么时候该更新pre是明确的了,倒是有个细节,二叉搜索树中是不允许有相等节点的,所以题目的要求用黑体字标明了。写的时候注意就可以了。
class Solution {
public:
TreeNode *pre = NULL;
bool isValidBST(TreeNode *root) {
if(root == NULL) ...
分类:
其他好文 时间:
2014-05-09 01:33:43
阅读次数:
269
好,二叉搜索树粉末登场,有关他的问题有这么几个,给你一个n,怎样求所有的n个节点的二叉搜索树个数?能不能把所有的这些二叉搜索树打印出来?
这道题倒不用考虑这么多,直接转就行了,我用的思想是分治,每次找到一半的位置,分离出中间节点,作为新子树的根节点,然后递归构造前半部分和后半部分。
class Solution {
public:
TreeNode *sortedListToBST(L...
分类:
其他好文 时间:
2014-05-08 11:07:14
阅读次数:
266
Given an array where elements are sorted in
ascending order, convert it to a height balanced BST./** * Definition for binary
tree * public class TreeN...
分类:
其他好文 时间:
2014-05-08 00:51:46
阅读次数:
430
binary_search 这个函数的返回值是布尔型,也就是最简单的找到了就为真,没找到就是假。
传入参数有三个,数据集合的左端点,数据集合的右端点,查找的值。 注意这些左端点右端点是要求左开右闭原则的,就是和数学上的左开右闭区间[a,
b)一样,右端点是个不会被查阅的值。 一般来说写法类似: bo...
分类:
编程语言 时间:
2014-05-07 12:47:43
阅读次数:
436
枚举+二分查找。
A+B+C >= K ----> C >= K - A -B ----> 统计大于等于C的个数即可。
#include
#include
#include
#include
#include
#include
using namespace std;
int a[1010];
int Scan() //输入外挂
{
int...
分类:
其他好文 时间:
2014-05-07 02:52:11
阅读次数:
322
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4631
Sad Love Story
Time Limit: 40000/20000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)
Total Submission(s): 1590 Accepted S...
分类:
其他好文 时间:
2014-05-07 02:40:43
阅读次数:
376
一、前言二分查找本身是个简单的算法,但是正是因为其简单,更容易写错。甚至于在二分查找算法刚出现的时候,也是存在bug的(溢出的bug),这个bug直到几十年后才修复(见《编程珠玑》)。本文打算对二分查找算法进行总结,并对由二分查找引申出来的问题进行分析和汇总。若有错误,请不吝赐教。二、二分查找是这样...
分类:
其他好文 时间:
2014-05-07 01:09:33
阅读次数:
442
题目原文:
Given n, how many structurally unique BST's (binary search trees) that store values 1...n?
For example,Given n = 3, there are a total of 5 unique BST's.
题目理解...
分类:
其他好文 时间:
2014-05-06 22:15:57
阅读次数:
415
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7 might become 4
5 6 7 0 1 2).
You are given a target value to search. If found in the array retur...
分类:
其他好文 时间:
2014-05-06 19:03:11
阅读次数:
365
简单的说,递归就是函数自己调用自己。在数据结构里面会经常使用递归,因为递归代码比较简洁优雅,易懂。编写递归程序时主要注意三点(1)递归总有一个最简单的情况,方法的第一条语句总是包含return的条件语句(2)递归调用总是去尝试解决一个规模更小的子问题,这样递归才能..
分类:
其他好文 时间:
2014-05-06 15:46:13
阅读次数:
289