Machine-learning the skill of mutual fund managers
Machine-learning the skill of mutual fund managers – 论文阅读
文章目录
- Machine-learning the skill of mutual fund managers -- 论文阅读
- Abstract
- Introduction
- Question
- Main findings
- contributions
- literature review
- Data
- Sample
- Holdings-based characteristics
- Model
- Optimal prediction
- Results
- expense and return
- Which information most useful
- Spanning
- Robustness
- Longer holding periods
- Understanding the results
- 变量重要性
- 交互效应
- 别的宏观经济变量?
- 简约模型
- 回应一下前人研究
- 分解异常回报
- 异常回报与总回报预测对比
- 时间变化的表现
- Conclusion
Abstract
- 我们利用机器学习方法证明,基金特征能够一贯地区分高绩效与低绩效的共同基金,无论是在费用之前还是之后。这种超额表现持续超过三年。
- 基金动量和资金流是预测未来风险调整后基金表现最重要的因素,而基金持有的股票特征则不具备预测能力。
- 在高情绪期间之后,预测性多空组合的回报更高。我们使用神经网络进行的估计使我们能够揭示情绪与资金流及基金动量之间的新颖且显著的交互效应。
Introduction
Question
文献对于积极交易的股票型共同基金的投资表现发现了混杂的结果。我们使用现代技术重新审视证据,并询问哪些——如果有的话——共同基金及其所持股票的特征能够帮助区分良莠。
Main findings
- 我们的方法识别出基金特征信息,特别是资金流和基金动量,作为共同基金超额表现(alpha)的关键预测因素。此外,这两个基金特征与情绪之间存在重要的交互效应,线性模型未能捕捉到这一点。
- 该模型生成了巨大的样本外绩效差异。每月购买预测表现最佳的10%共同基金,并利用模型不仅选择而且在顶级十分位内对基金进行加权,产生了72%的累计异常回报。而每月购买预测表现最差的10%共同基金则产生了-119%的累计异常回报。
- 即使我们在模型中移除所有股票特征信息,性能差异几乎保持不变。实际上,我们也可以移除大部分基金和基金家族特征。仅给出关于资金流、基金动量和情绪的数据的模型预测几乎与完整模型一样好。它们为预测表现者最高和最低十分位之间的相对月度超配提供了48个基点。该策略的夏普比率每月为0.24。
- 我们发现的可预测性令人惊讶地持续。尽管投资是基于一个月前的预测,但表现最好的十分位基金在三年内明显优于表现最差的十分位基金。即使在36个月后,多空组合的月度夏普比率仍然为0.20,相比之下,三个月前的夏普比率为0.30。这一结果在文献难以找到异常基金回报持续性的证据的背景下显得尤为突出。
- 我们将基金异常回报分解为披露间成分(固定基金的股票持仓在其上一季度末的价值)和披露内成分(考虑季度内的共同基金交易)。后者是回报差距和风险敞口差异之和。我们发现大约一半的超额收益来自于模型预测披露间异常回报的能力,另一半来自于预测披露内异常回报。资金流和基金动量既预测了回报差距又预测了风险敞口差异,而大多数预测回报差距的股票特征通过承担更多系统性风险实现,导致披露内异常回报较少。这些结果为超额收益的来源和持续性提供了额外的见解。
- 资金流和基金回报动量作为关键预测因素的重要性表明,一些投资者能够识别基金经理的技能,并(重新)分配他们的投资到这些有技能的经理那里。然而,这种投资流量的再分配并不如Berk和Green(2004)的无摩擦模型所预测的那样强烈。技能以基金回报动量的形式留下痕迹,供投资者在下一个时期利用。换句话说,资金流动是渐进且足够小的,以至于需要几个周期基金才会遇到零边际异常回报。
contributions
- 研究结果可能也与基金和基金家族通过营销吸引资金流动而非或除了通过投资技能有关(Gallaher等人,2009;Ibert等人,2018;Roussanov等人,2021)。
- 由营销引发的资金流入对基金通常投资的股票产生了购买压力。在一个需求曲线向下倾斜的世界里(Coval和Stafford,2007;Koijen和Yogo,2019;Gabaix和Koijen,2021),这将提高价格并提升基金回报。
- 通过流量-绩效关系以及营销驱动流量的持续性,超额表现会在下一个周期创造更多的流入。需求压力进一步推高价格,从而产生基金回报的动量。资金流和基金动量在高情绪期间与基金表现的更强关联进一步支持了这一营销驱动渠道的存在。
我们的论文在如何使用机器学习模型进行资产定价方面做出了几项方法论贡献:
- 相对绩效预测:我们证明,作为因子模型局部残差获得的异常回报不仅是经济动机的,也是统计上更好的预测目标。相比之下,基金(及股票)回报率的水平极难预测。异常回报消除了市场和其他风险因素的水平效应,使得异常回报的预测成为一个相对的目标。常用的机器学习预测总回报的方法可能会被回报水平中的共同成分预测误差主导,导致相对绩效的相关横截面信息的次优使用。我们显示,用同样的灵活方法预测异常回报而不是总回报可以带来更高的准确性和更好的组合表现。
- 不同信息集的经济收益量化:我们建议通过改变提供给同一灵活机器学习算法的信息集来比较预测和交易收益。重点是比较信息集而不是模型规格之间的竞赛。
- 宏观经济状态依赖性的测量:具体来说,我们提出了使用完整时间序列的条件模型交叉样本外评估。重要的是,用于估计和评估模型的数据点必须抽样,以确保所有相关的经济条件都在所有子样本中得到体现,这可以通过时间上的随机抽样实现。这对测量仅在数据子集中可用的宏观经济状态的依赖性尤为重要,这些状态可能在传统的按时间顺序划分的数据估计或评估中被忽视。我们的评估方法允许我们在样本外分析中充分利用所有样本期,减少特定子时期的效应。尽管如此,我们的主要结果对于使用按时间顺序交叉验证以及扩展窗口抽样方法同样稳健。
- 为了更好地评估预测的投资效益,我们建议使用预测加权组合。这些组合由于不仅利用了排名,还利用了预测信号的相对强度,因此能实现最大的回报差异。预测加权组合优于广泛使用的基于预测分位数的等权重组合。
- 最后,我们提出了一种新的交互效应度量方法,该方法不仅仅衡量局部斜率,而是更具有信息量的整体斜率。对于这个可解释的度量,我们提供了一个基于神经网络的功能中心极限定理的正式统计显著性测试。
literature review
在实证资产定价领域,有大量文献研究共同基金经理是否通过选股和市场时机选择超越其基准。
- Berk和Green(2004)的开创性论文表明,在扣除费用前,很大一部分基金经理能够跑赢市场;
- 而Fama和French(2010)则发现,在扣除费用前并无显著的超额表现。
- Kacperczyk等人(2014;2016)的研究指出,一小部分经理人展现出足够的技能,能够在经济衰退时进行市场时机选择,并在扩张期间进行选股,从而持续地超越市场。这种现象的存在可能是因为存在非信息型共同基金经理和零售交易者,这成为一种均衡现象(Stambaugh, 2014)。
虽然投资者会将资金导向那些按资本资产定价模型(CAPM)阿尔法测量优于其他基金的基金(Berk和Van Binsbergen, 2016; Barber等人, 2016),但越来越多的证据表明,除了费用和扣除费用前的表现外,还有其他因素决定基金的资金流。
- Gallaher等人(2009)展示了广告对行业、基金家族及基金层面的资金流的影响。
- Roussanov等人(2021)认为,营销是理解基金规模和绩效的经验联合分布的重要决定因素。
- Ibert等人(2018)显示,基金经理的薪酬与不受当前和过去基金表现影响的管理资产部分挂钩。
Gruber(1996)和Zheng(1999)首次揭示了资金流对基金表现的预测作用,他们发现了积极但相对短暂且较弱的关系。“聪明钱”效应存在于小型而非大型基金中。
- 这些早期的研究未将动量纳入风险调整中。Sapp和Tiwari(2004)指出,一旦考虑股票回报动量因子(Carhart, 1997),聪明钱效应便会消失。
- 以往的工作识别了不同成分的资金流和基金回报之间的不同方向效应。Lou(2012)表明,预期的资金流交易正向预测了下一年的共同基金回报。
- Song(2020)发现,与正面因子相关回报相关的基金流量会导致未来基金表现不佳。我们的机器学习方法重新审视了资金流的预测作用,使用四因子风险调整,并表明基金流量正向预测表现。
更广泛地说,我们的论文与基金回报可预测性的文献相关。
- Carhart(1997)发现,一旦加入股票动量因子,基金净表现的持续性基本上消失了,除了表现最差的基金,因为它们持续高的成本。
- Cremers和Petajisto(2009)的“主动份额”—即持有与基准差异较大的基金—可以预测基准指数调整后的Carhart阿尔法。
- Kacperczyk等人(2008)的“回报差距”可以预测四因子月度阿尔法。我们识别出的月度异常回报大约是他们的两倍。虽然他们在短期上找到显著性但在长期上没有,而我们在这两个方面都找到了显著性。更重要的是,我们证明当投资者情绪高时,基金动量和资金流的预测力显著增强。
关于宏观经济条件对表现的影响,证据相对较少。
- Moskowitz(2000)和Kosowski(2011)发现,共同基金的风险调整后表现,在经济衰退期好于繁荣期。
- 类似于Stambaugh等人(2012)对股票回报异常的研究发现,我们发现高情绪时期与更高的基金回报可预测性相吻合。尽管对于股票异常来说,主要影响来自short-leg,但在高情绪时期,最佳和最差基金经理的表现分别为超额或不足,显示出不同的经济渠道。与情绪和基金特征之间的新交互效应相比,我们并未发现类似的与宏观经济状态(如CFNAI代理)的交互效应。
我们的研究与金融领域内不断增长的机器学习(ML)文献相连接
- Karolyi和Van Nieuwerburgh, 2020的综述,主要集中在使用大量回报预测因子分析股票收益的横截面。类似的技术也开始被应用于其他资产类别。
- 独立于我们工作的Li和Rossi(2021)以及DeMiguel等人(2023)利用机器学习技术研究共同基金的表现,分别提供了预测基金回报或异常回报的比较研究,所使用的机器学习方法类似于Gu等人(2020)的方法。
Data
Sample
- 数据来源:Center for Research in Security Prices (CRSP) 的无生存偏差共同基金数据库
- 样本区间:1980年1月至2019年1月期间3275只共同基金的407,158个(基金-月)观测值。
- 筛选条件:在每个时间点t,共同基金还必须在过去36个月内至少有30个非缺失回报观测值,以确保回归基础的异常回报定义良好。
目标变量 Carhart四因子alpha,在过去36个月内估计因子载荷,再应用到最新的月份计算alpha
R i , t − 36 : t − 1 = α i + F t − 36 : t − 1 β ^ i , t − 1 + η i , − 36 : t − 1 R i , t a b n = R i , t − F t β ^ i , t − 1 R_{i,t-36:t-1}=\alpha_{i}+F_{t-36:t-1}\hat{\beta}_{i,t-1}+\eta_{i,-36:t-1} \\ R_{i,t}^{abn}=R_{i,t}-F_{t}\hat{\beta}_{i,t-1} Ri,t−36:t−1=αi+Ft−36:t−1β^i,t−1+ηi,−36:t−1Ri,tabn=Ri,t−Ftβ^i,t−1
异常回报并不保证其均值为零。在我们的样本中,它们的均值和中位数为每月-0.03%,标准差为2.00%。因此,共同基金平均而言获得的回报与Carhart模型预测相符,但存在显著的横截面分散。
Holdings-based characteristics
共同基金持有股票,而这些股票的特征来自Chen等人(2023)的研究,涵盖了46个已证明对预期回报横截面具有预测力的特征。这些特征被列在表1中的六个子组中。我们有332,294个完全观察到基金特征的基金-时间观测值。对于缺失的基金特征,我们在特征空间中使用潜在因子模型进行插补
所有股票特征基于股票在该特征上的排名,横截面标准化到-0.5至0.5的范围内。我们将股票特征的排名符号规范化,使得相应的多空因子具有正的风险溢价。例如,对于规模(LME),最大的股票具有负排名,而小股票具有正排名。每个基金的特定股票特征由基金的持仓加权。
除了46个股票特征外,我们还形成了13个基金特征,归类于表1最后三个子组:基金动量、基金特征和基金家族特征。三个基金动量特征是根据表2定义的基金异常回报计算得出。基金动量不同于基于持仓的股票动量。首先,组合持仓信息仅按季度提供,而基金也在季度内交易。因此,基于持仓权重的股票动量加权平均值只能提供近似值,因为它们使用季度更新的权重来对应每月更新的股票分位数。其次,基金动量基于去除与基于股票市场的动量因子相关后的残差时间序列。
为了研究基金表现是否可以与经济状态联系起来,我们包括了投资者情绪(Baker和Wurgler, 2006)和芝加哥联邦储备银行全国活动指数(CFNAI),后者是一个捕捉宏观经济状态的系列指标,本身是由许多宏观时间序列组成的指数。图1绘制了这两个宏观经济变量的时间序列图。Kacperczyk等人(2014)表明,共同基金的表现取决于CFNAI。
Model
我们的主要分析目标是预测共同基金的异常回报。这项分析是在样本外进行的,涉及许多条件变量,并允许特征之间的交互作用(表1中的59个特征加上情绪/CFNAI),以及特征与未来基金超额表现之间关系的非线性。为此,我们使用了类似于Gu等人(2020)的人工神经网络模型。在他们广泛的比较研究中,他们展示了这种方法在预测股票回报方面优于其他机器学习技术。我们利用滞后预测变量通过神经网络预测基金异常回报:
R i , t + 1 a b n = g ( z i t , z t ) + ϵ i , t + 1 R_{i,t+1}^{abn}=g(z_{it},z_t)+\epsilon_{i,t+1} Ri,t+1abn=g(zit,zt)+ϵi,t+1
以共同基金特定特征 z i t z_{it} zit和宏观经济变量 z t z_t zt作为输入,构建基金异常回报的最佳预测器。我们主要关注情绪作为宏观经济变量,并讨论使用CFNAI作为稳健性检查的结果。
为了评估神经网络模型的表现,我们采用交叉样本外分析。我们将完整样本分为三个等长的时间段(折叠)。使用其中两个折叠来估计模型和选择调整参数,并在剩余的一个折叠上进行样本外预测。遵循Kozak等人(2020)、Lettau和Pelger(2020)及Bryzgalova等人(2021)的方法,我们在三个不同的折叠组合上进行交叉验证,从而为样本中的每个数据点获得一个样本外预测。这种交叉样本外评估减少了特定子期间对样本外分析的影响。估计和验证时间段(样本的2/3)进一步划分为用于估计(训练)的3/4和用于验证(选择调整参数)的1/4。
基线结果随机选择进入每个折叠的日期。图2的顶部面板显示了这种随机抽样方案,不同颜色表示三个折叠。底部面板显示了更传统的按时间顺序抽样。另一种替代方案是不进行交叉验证的扩展窗口按时间顺序估计和评估。我们在下面分析这两种替代抽样方案,并展示基准可预测性结果对抽样方案具有稳健性。
作者认为为什么要用这种随机抽样方案:
- 每种抽样方案都有其优缺点。随机抽样的重要优势在于每个折叠中高情绪和低情绪观测值分布较为均衡,如图2所示。相比之下,按时间顺序抽样可能在评估折叠或估计折叠中没有任何高情绪时期(当绿色折叠用于样本外评估时,或者用于估计时)。如果情绪是预测问题中的一个重要条件变量,正如我们将展示的情况一样,那么按时间顺序的结果将无法准确捕捉对基础经济状态的依赖。
- 他还解释了: 随机抽样不会产生前瞻偏差。感兴趣的经济对象是条件异常回报 g ( z i t , z t ) g(z_{it},z_t) g(z
相关文章:

Machine-learning the skill of mutual fund managers
Machine-learning the skill of mutual fund managers – 论文阅读 文章目录 Machine-learning the skill of mutual fund managers -- 论文阅读AbstractIntroductionQuestionMain findingscontributionsliterature reviewDataSampleHoldings-based characteristicsModelOptima…...

Windows下Python+PyCharm的安装步骤及PyCharm的使用
Windows下PythonPyCharm的安装步骤及PyCharm的使用 文章目录 Windows下PythonPyCharm的安装步骤及PyCharm的使用一、Python的安装(1)环境准备(2)Python安装(3)pip组件的安装 二、PyCharm的安装(…...

Anaconda+PyTorch(CPU版)安装
1.Anaconda下载 Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 如果已安装python,下载之前要彻底删除之前下载的python 2.Anaconda安装 3.添加环境变量 //根据实际安装路径进行更改 D:\Anaconda D:\Anaconda\Scripts D:\…...
第 28 章 - ES 源码篇 - Elasticsearch 启动与插件加载机制解析
前言 不管是什么框架,启动类里面做的一定是初始化的工作! 启动 ES 节点的启动逻辑,全部都在 org.elasticsearch.bootstrap 包下。 启动类为:Elasticsearch#main(final String[] args) 与大多数框架启动类一致。启动类主要负责的…...

机床数据采集网关在某机械制造企业的应用
随着工业4.0时代的到来,智能制造已成为制造业转型升级的重要方向。数控机床作为现代制造业的核心设备,其运行状态和加工参数的数据实时采集与分析对于提升生产效率、优化生产流程具有关键意义。 背景概述 某机械制造企业拥有多台数控机床,这…...
美团Android开发200道面试题及参考答案(上)
http 三次握手 / 四次挥手具体过程,信号量的变化,只有两次握手行不行 三次握手过程: 第一次握手:客户端向服务器发送一个 SYN(同步)标志位为 1 的 TCP 报文段,其中包含客户端的初始序列号(ISN),此时客户端进入 SYN_SENT 状态,表示客户端请求建立连接。第二次握手:服…...
MQTT协议的应用场景及特点和常见的概念03
发布者发送数据---》代理软件Broker---》订阅者接收数据 发布者和订阅者进行隔离 1.空间上的隔离 2.时间上的隔离 MQTT常见的应用场景:物联网行业 MQTT常见的特点: 1.轻量级:MQTT协议占用的系统资源较少,数据报文较小 2.可靠性较强࿱…...

电脑缺失sxs.dll文件要怎么解决?
一、文件丢失问题:以sxs.dll文件缺失为例 当你在运行某个程序时,如果系统提示“找不到sxs.dll文件”,这意味着你的系统中缺少了一个名为sxs.dll的动态链接库文件。sxs.dll文件通常与Microsoft的.NET Framework相关,是许多应用程序…...
数据处的存储与处理——添加数组
Numpy模块中的append()函数和insert()函数 1、append()函数的使用 append(arr,values,axisNone) arr 必选,要添加元素的数组 values 必选,要添加的元素数组 axis 可选,默认值为None。当省略该参数时,表示在…...

24-12-28-pytorch深度学习CUDA的GPU加速环境配置步骤
文章目录 pytorch深度学习CUDA的GPU加速环境配置步骤1. 更新cuda驱动2. 更新完成cuda驱动后,查看对应的驱动版本3. 根据驱动的版本号,下载对应的cuda-toolkit4. CUDA是否配置成功5. 配置CUDNN6. 配置torch pytorch深度学习CUDA的GPU加速环境配置步骤 1.…...

YOLO系列正传(五)YOLOv4论文精解(上):从CSPNet、SPP、PANet到CSPDarknet-53
系列文章 YOLO系列基础 YOLO系列基础合集——小白也看得懂的论文精解-CSDN博客 YOLO系列正传 YOLO系列正传(一)类别损失与MSE损失函数、交叉熵损失函数-CSDN博客 YOLO系列正传(二)YOLOv3论文精解(上)——从FPN到darknet-53-C…...

【AIGC-ChatGPT副业提示词指令 - 动图】魔法咖啡馆:一个融合创意与治愈的互动体验设计
引言 在当今快节奏的生活中,咖啡早已不仅仅是提神醒脑的饮品,更成为了一种情感寄托和生活态度的表达。本文将介绍一个独特的"魔法咖啡馆"互动体验设计,通过将咖啡与情感、魔法元素相结合,创造出一个充满想象力和治愈感…...
AIGC在电影与影视制作中的应用:提高创作效率与创意的无限可能
云边有个稻草人-CSDN博客 目录 引言 一、AIGC在剧本创作中的应用 1.1 剧本创作的传统模式与挑战 1.2 AIGC如何协助剧本创作 1.3 未来的剧本创作:AI辅助的协同创作 二、AIGC在角色设计中的应用 2.1 传统角色设计的挑战 2.2 AIGC如何协助角色设计 三、AIGC在…...

第三百四十六节 JavaFX教程 - JavaFX绑定
JavaFX教程 - JavaFX绑定 JavaFX绑定同步两个值:当因变量更改时,其他变量更改。 要将属性绑定到另一个属性,请调用bind()方法,该方法在一个方向绑定值。例如,当属性A绑定到属性B时,属性B的更改将更新属性A…...

IDEA+Docker一键部署项目SpringBoot项目
文章目录 1. 部署项目的传统方式2. 前置工作3. SSH配置4. 连接Docker守护进程5. 创建简单的SpringBoot应用程序6. 编写Dockerfile文件7. 配置远程部署 7.1 创建配置7.2 绑定端口7.3 添加执行前要运行的任务 8. 部署项目9. 开放防火墙的 11020 端口10. 访问项目11. 可能遇到的问…...
vue Promise使用
new Promise((resolve, reject) > { ... }) 是 JavaScript 中创建 Promise 实例的语法。Promise 是一种用于处理异步操作的对象,它代表了一个异步操作的最终完成(或失败)及其结果值。 Promise 的基本结构 javascript 深色版本 const my…...
Tomcat调优相关理解
什么是QPS? 是Queries Per Second 的缩写,是指服务器每秒查询数,比如定义一个a接口,该接口是10QPS,那么就是指该接口每秒可以处理10个请求 springboot默认并发处理数是多少? springboot并发处理要看serv…...
uni-app开发-识图小程序-主要功能以及首页实现
目录 一:功能介绍 二:代码实现 一:功能介绍 识图小程序首页主要是识图类型的展示列表,目前只有四种类型的图像识别,分别是车牌,发票,电表,身份证。可以分别识别车牌号码,身份证号码,发票号码,和电表度数。点击对应的类型图标会跳转到识图页面,每个分类上面展示该…...
vue3 ref reactive响应式数据,赋值的问题、解构失去响应式问题
在 Vue3 中,使用 ref 和 reactive 创建响应式数据时,赋值操作和解构赋值存在一些需要注意的事项。以下是对这些问题的详细解答以及代码示例: ref 和 reactive 的基本用法 ref:主要用于基本数据类型(如 Number、String、…...
算法常用库函数——C++篇
前言 本文主要记录、整理、回顾在算法考试中常用的一些库函数,技巧等,不断更新中~ list 常用方法 在一般c编程中,对于数组这样的数据结构,一般都使用vector居多,貌似list用的很少。但实际list也十分强大,…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...