首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

打基础之,LeetCode算法题第4日刷,这道题开始有点意思了

打基础之,LeetCode算法题第4日刷,这道题开始有点意思了

一直很纠结算法的文章应该怎么写。最后觉得还是从最简单的level开始写吧,一开始就弄些重量级的,什么人工智能,机器学习的算法,还要有大量的数学以及优化的知识,小白们估计会很郁闷,当然我也不一定能做出来对吧。

首先定义节点元素的数据结构_Node,其中c字段用来保存摩尔斯电码字符“.”或“-”;flag字段用来标记一个完整的字符串是否编码完毕,它也对应着一个叶节点;lnext 和rnext是指向接下来的_Node节点的两个指针,其中,lnext指向的节点的c字段值是“.”,而rnext指向的节点的c字段指是“-”。

具体实现(可以对照上面的图和下面的代码) ,就是对所有字符串编码后的摩尔斯电码字符串进行遍历,同时创建上面所说的二叉树,用setlenght来统计二叉树的叶节点数量,并返回最终的setlenght即可。

运行结果是毫秒级以下。

python实现

当然执行效率还是很难和C语言比的。儿子要超过老爹也就是也就是效率上赶超赶超。性能上嘛,还是那句话,姜还是老的辣。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181026A0EADR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券