2023-12-15 运动记录231215
饮食 早餐: 无 午餐: 腊肉蒸饭 晚餐: 猪脚饭 无氧 无 有氧 总结 想着本来就打算看快船VS勇士的比赛的,还不如去健身房爬坡,边走边看。然后就晚了一点。 快3点了才睡觉,还是太晚了。 老实说,运动和不运动,真的不一样。
饮食 早餐: 无 午餐: 腊肉蒸饭 晚餐: 猪脚饭 无氧 无 有氧 总结 想着本来就打算看快船VS勇士的比赛的,还不如去健身房爬坡,边走边看。然后就晚了一点。 快3点了才睡觉,还是太晚了。 老实说,运动和不运动,真的不一样。
饮食 早餐: 青枣、鸭脖 午餐: 豌杂面 晚餐: 华莱士全鸡套餐、中可、一瓶百事可乐 无氧 无 有氧 总结 慢慢调整了,事情很多,突然就啥都不想做了。 不要那么晚睡觉了,真不得行,太伤身体了。
饮食 早餐: 青枣 午餐: 鸡蛋炒荞麦面 晚餐: 华莱士全鸡套餐、中可、一瓶百事可乐 无氧 无 有氧 总结 之前感冒发烧,然后一连串的问题,状态不是很好,就中断了,现在调整回来。
Zigbee协议 Zigbee协议是一种无线通信协议,专门设计用于低功耗、低数据速率、短距离的无线通信应用。它基于IEEE 802.15.4标准,并添加了网络和应用层的协议,用于构建低功耗无线传感器网络和物联网设备。 以下是Zigbee协议的主要特点和组成部分: 低功耗:Zigbee协议设计用于低功耗应用,节点可以进入睡眠状态以节省能量,并通过周期性唤醒来进行通信。 网络拓扑:Zigbee支持多种网络拓扑结构,包括星型、网状和混合结构。其中,协调器(Coordinator)负责网络的管理和协调,路由器(Router)用于中继数据,终端设备(End Device)作为最低级的节点。 自组织网络:Zigbee网络具有自组织和自愈能力,可动态调整网络拓扑结构,使网络具备容错性和鲁棒性。 低数据速率:Zigbee协议适用于低数据速率的应用,通常在10-100 kbps的范围内。 安全性:Zigbee协议提供多层安全机制,包括加密、认证和访问控制,以确保数据的安全性和网络的保密性。 应用层协议:Zigbee协议定义了一系列的应用层协议,用于特定的应用领域,如家庭自动化、智能能源管理、工业控制等。 Zigbee协议广泛应用于物联网领域,包括智能家居、智能建筑、工业自动化、农业监测等。它提供了一种低成本、低功耗、可靠且安全的无线通信解决方案。 Zigbee网关 Zigbee网关是连接Zigbee无线通信网络与其他网络(如以太网、Wi-Fi等)的设备。它充当一个桥梁,通过与Zigbee设备建立无线连接,将Zigbee设备的数据转发到其他网络,或将其他网络的命令传递给Zigbee设备。Zigbee网关通常具备数据转换和协议转换的功能,以适应不同网络之间的数据交互需求。 Zigbee组播 Zigbee组播是Zigbee网络中的一种通信方式,用于一对多的数据传输。在Zigbee网络中,多个设备可以加入同一个组播组,并通过组播组地址进行通信。当一个设备发送数据到组播组地址时,所有加入该组播组的设备都可以接收到该数据。Zigbee组播可以用于广播命令、控制多个设备或进行集群通信等场景。 Zigbee节点 Zigbee节点是指加入Zigbee无线通信网络的设备。每个Zigbee节点可以是传感器、执行器、控制器或其他类型的设备。Zigbee节点通过与Zigbee协调器通信,参与组网、数据传输和网络管理等操作。每个Zigbee节点具有唯一的64位或16位的节点地址,用于在Zigbee网络中进行标识和通信。 Zigbee设备 Zigbee设备是指采用Zigbee通信协议的终端设备,如智能灯泡、智能插座、传感器等。这些设备可以通过Zigbee协议进行通信和互联,构建起一个Zigbee网络。在Zigbee网络中,虽然Zigbee节点和Zigbee设备通常可以视为相同的概念,但有一些微妙的区别: 角色:Zigbee节点可以扮演不同的角色,例如协调器(Coordinator)、路由器(Router)和终端设备(End Device)。而Zigbee设备通常被视为终端设备,扮演终端设备角色。 能力:Zigbee节点通常具有更复杂的功能和能力,可以作为网络的核心,负责管理网络的拓扑结构、路由选择等。而Zigbee设备通常具有更简单的功能,执行特定的任务或提供特定的服务。 参与程度:Zigbee节点更强调对整个Zigbee网络的参与和管理,通常需要进行配置和设置。而Zigbee设备更强调作为终端设备的使用,通常不需要进行复杂的配置和管理。 需要注意的是,这些区别并不是严格的定义,而是对于Zigbee网络中的概念的一种常见理解。在实际应用中,节点和设备的概念可能会交叉使用,具体的区分可以根据具体的实际情况和需求来确定。
Algorithm 本周的算法题为 14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs = ["flower","flow","flight"] 输出:"fl" 实现代码如下: if (strs[0] == "") { return "" } if (strs.length == 1) { return strs[0] } for (let i = 0; i < strs.length; i++) { for (let j = 0; j < strs.length - i - 1; j++) { if (strs[j].length > strs[j + 1].length) { let temp = strs[j] strs[j] = strs[j + 1] strs[j + 1] = temp } } } let minStr = strs[0] for (let i = 0; i < minStr.length; i++) { const minStrValue = minStr[i]; for (let j = 1; j < strs.length; j++) { if (strs[j][i] !== minStrValue) { return minStr.substring(0, i) } } } return minStr 解题思路: 总的来说就是,先将字符串数组排序,拿到最短的字符串,通过遍历这个最短的字符串,依次对比其他字符串相同下标的字符,是否相等,拿到出现不相等的下标,然后截取这个最短字符串的前缀即是我们要求的值。 首先,如果字符串数组是[""],直接返回结果为""。 如果字符串数组只有一个元素,就返回元素自身。 使用冒泡排序,将字符串数组,长度最短的字符串放在前面,获取最短字符串的值。 遍历最短字符串,依次对比其他字符串的相同下标的字符,是否相等,如果不相等,就返回存在不相等的下标,比如[ 'flow', 'flower', 'flight' ],通过flow来遍历,然后会在o也就是下标为2时,出现不相等,此时就截取最短字符串的值,minStr.substring(0, i),最长公共前缀。 题外话,前面的if是在力扣提交解法,反馈之后补上的,有点写测试用例的意思,当时我也在想,能不能有一个完美的解法,但是,仔细一想,直接根据特殊场景,给出直接的结果,虽然会觉得代码有点难看,但结果本身就是提高算法效率的事情,所以就这样了。一开始这道题目没有一点思路的,反复研究,才想到解法。不管解法好坏,当下的目的是解得出来,思路最重要,等积累到一定程度,自己能力有所长进,相信给出的解法一定会越来越优雅。 Review Stop Telling People Everything. My experience | by Oyinade | Oct, 2023 | Medium 你知道,当人们说不要透露下一步或者自己的计划给别人,不要告诉别人任何事情。在某种程度上,我一直觉得这句话很难理解,因为你不告诉别人你的情况,别人怎么能帮到你呢?我想说的是,没有人天生就是一座孤岛,在你生命的某个时刻,你需要和别人有交集。你需要别人帮助你,指导你,给你指路。 让我用自己来举例子,在三年前,当我还在读大学的时候,我接到了一个很小的项目,我决定测试一下这句话,看看我最后的表现如何,所以我没有告诉任何人关于这个项目。 当然,我对这个项目做了研究,我还上网寻求指导,我很有信心它会成为一个非常棒的项目。 我要展示作品的那一天到来了,当我起身开始展示时,我的很多朋友,甚至我周围的人,都有点震惊地发现,我被交给了这个项目,却没有提起任何事情,因为这是一个相当大的交易。 我能听到有人说,“她为什么不告诉我们”的窃窃私语,但木已成舟,我现在要展示它。当我开始我的演讲时,我没有足够的信心来讲好,我的肢体语言传达了一个完全不同的信息,我匆忙做了所有的事情,一个本应该花45分钟简单而清晰的解释的演讲,在15分钟内就完成了。 ...