Friday, November 25, 2016

Leetcode | Closet Binary Search Tree Value

Given a non-empty binary search tree and a target value, find the value in the BST that is closest to the target.
Note:
  • Given target value is a floating point.
  • You are guaranteed to have only one unique value in the BST that is closest to the target.

这个题需要注意的一小点儿就是,它给的target value is double, 刚开始我是用recursion来做,于是
给定义的min (用来记录最小值的) 为INT_MAX, 显然这样不对,应该要用DB_MAX, 但是刷题不能
用float.h, 所以我就在想如何不给初始值。

后来我使用的iteration来做,没有递归。观察点就在于,一旦root->val < target, 那么就应该挪到右边
的树去寻找下一个potential closet value, 因为如果root->val已经比target小了,那么左子树里面的任何
结点只可能更不close, 反之亦然。


No comments:

Post a Comment

Leetcode 316. Remove Duplicate Letters

 这道题表面问的是如何删除重复,实际在问如何从多个字符选取一个保留,从而让整个字符串按升序排列。那么策略就是对于高顺位的字符比如‘a',就要选靠前位置的保留,而低顺位字符如’z'则应该尽量选取靠后位置保留。 算法大概思路:每看到一个字符,我们要决定是否保留 1. ...