我需要实现一个 void 函数来计算二叉树中每个节点的高度并将其存储在每个节点中。我在网上找到了一些本质上是递归的解决方案,但它们返回 int。示例包括(https://www.geeksforgeeks.org/write-ac-program-to-find-the-maximum-depth-or-height-of-a-tree/)。除了它不是空函数之外,模型答案之间的区别在于它也不存储每个节点中的高度。
这是我对解决方案的尝试,但我似乎无法使代码正常工作,也无法重新调整模型答案以递归地应用于 void 函数。当我在帮助程序代码中运行我的代码进行测试时,它甚至不显示任何输出。
void computeHeight(Node *n) {
Node* ltraverser = n;
Node* rtraverser = n;
int lheight = 0;
int rheight =0;
if (n == NULL) {
n->height = 0;
}
while (ltraverser->left != NULL) {
ltraverser = ltraverser->left;
lheight += 1;
}
while (rtraverser->right != NULL) {
rtraverser = rtraverser->right;
lheight += 1;
}
if (lheight > rheight) {
n->height = lheight;
}
else {
n->height = rheight;
}
computeHeight(n->left);
computeHeight(n->right);
}
Run Code Online (Sandbox Code Playgroud)
以供参考: …
对于下面的功能,我试图理解
一世。为什么wrapper.count = 0在包装函数下面初始化?为什么不在 def counter(func) 下初始化?为什么wrapper.count 没有将其重置wrapper.count为0,因为它在wrapper 函数下方运行?
我试图了解什么是wrapper.count?为什么不初始化一个普通变量count而不是wrapper.count?
def counter(func):
def wrapper(*args, **kwargs):
wrapper.count += 1
# Call the function being decorated and return the result
return func
wrapper.count = 0
# Return the new decorated function
return wrapper
# Decorate foo() with the counter() decorator
@counter
def foo():
print('calling foo()')
Run Code Online (Sandbox Code Playgroud) 我需要有关学校评分员生成的属性错误的帮助。
我的任务:我需要创建一个自定义转换器以输入到分级器中。
评分者将字典列表传递给我的估算器的 predict 或 predict_proba 方法,而不是 DataFrame。这意味着模型必须同时使用这两种数据类型。出于这个原因,我需要提供一个自定义的 ColumnSelectTransformer 来代替 scikit-learn 自己的 ColumnTransformer。
这是我的自定义转换器代码,旨在在提供的列中估算空值。
from sklearn.impute import SimpleImputer
simple_cols = ['BEDCERT', 'RESTOT', 'INHOSP', 'CCRC_FACIL', 'SFF', 'CHOW_LAST_12MOS', 'SPRINKLER_STATUS', 'EXP_TOTAL', 'ADJ_TOTAL']
class ColumnSelectTransformer(BaseEstimator, TransformerMixin):
def __init__(self, columns):
self.columns = columns
def fit(self, X, y=None):
return self
def transform(self, X):
if not isinstance(X, pd.DataFrame):
X = pd.DataFrame(X)
return X[self.columns].values
simple_features = Pipeline([
('cst', ColumnSelectTransformer(simple_cols)),
('imputer', SimpleImputer(strategy='mean')),
])
Run Code Online (Sandbox Code Playgroud)
然后我的任务是创建一个新管道并使用估算器进行拟合,下面是我的尝试。
from sklearn.linear_model import LinearRegression
simple_features_model = Pipeline([
('simple', simple_features),
('linear', LinearRegression()),
])
simple_features_model.fit(data, fine_counts > …Run Code Online (Sandbox Code Playgroud)