剑指 Offer 50. 第一个只出现一次的字符 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 首先通过字典(散列)将所以字符出现的频率保存。再用一个循环输出只出现一次的第一个字符 class Solution: def firstUniqChar(self, s: str) -> str: dict = {} fo…
剑指 Offer 53 - II. 0~n-1 中缺失的数字 找出递增数组中确实的数字; 思路:二分查找,看索引与值是否相等,即可找到缺失的数字;相比遍历的方法速度肯定会提升。虽然可以运行,但却难以通过测试。 class Solution: def missingNumber(self, nums) -> int: head = 0 tail…
剑指 Offer 03. 数组中重复的数字 数组长度为n,但数的范围在0到n-1。所以必定有重复。但直接遍历真的太憨憨了:sweat_smile:(是我没错了)。 使用哈希表的set()【集合】方法 set对象的每一个元素要求可进行哈希运算,set 会对内部元素进行去重,每个元素在同一个set 中只会出现一次; 字典可以将一个可哈希值映射到一个任意…
剑指 Offer 05. 替换空格 在 Python 和 Java 等语言中,字符串都被设计成「不可变」的类型,即无法直接修改字符串的某一位字符,需要新建一个字符串实现。 方法一:遍历 class Solution: def replaceSpace(self, s: str) -> str: if not s : return '…
剑指 Offer 06. 从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 class ListNode: def __init__(self, x): self.val = x self.next = None class Solution: def reversePrint(self, head: List…
剑指offer09.用两个栈实现队列 不难,但自己对于python面向对象的掌握还有欠缺。中间也没有考虑周全。思路虽然有了,但编写代码的时候错误还蛮多的。 另外,特别要考虑到如过队列加入,删除再进入再删除情况下的情况。 class CQueue: def __init__(self): self.stack_1 = [] self.stack_2 …
第四章 网络层:数据层面 网络层的关键功能:转发(局部),路由(全局)。 数据层面:转发(传统方式--仅IP;SDN方式--各个字段) 控制层面:选路 路由器组成 路由:路由选择算法生成路由表 转发:从输入到输出根据路由表进行分组转发 基于头部字段的任意组合进行转发 基于目标的转发--仅仅依赖IP地址 交换结构(将分组从输入缓冲区传输到合适的输出端…
第一章 概述 因特网 从具体构成角度:节点,边(通信链路),协议(TCP/IP)。 从服务的角度:通信的分布式应用,为应用提供的服务(TCP,UDP)【通过API】。 网络边缘:端系统(主机),分为客户机和服务器;应用程序。 网络核心:数据传输的方式包括:电路交换【预留资源:频分,时分,波分】(电话)和分组交换【按需使用,每个分组包含目标主机的完整…
AD的概念及性能指标 AD概念:将连续的模拟信号转换为离散的数字信号的器件。 转换时间:AD完成一次转换所需要的时间,其倒数为转换速率。 分辨率 输出模拟量最小变化程度的指标(32上的为12位)。12位,满量程5v分辨率为:5 /(2^12)=1.22mv 量化误差 量化过程引起的误差 理论上规定为一个单位分辨率的-1/2 --- +1/2LSB …
32简介 32的内核是ARM 32位的Cortex-M3。 启动模式 内置flash:主闪存,对应着烧写到flash的用户程序 系统存储器:对应着系统的启动代码,将采用串口1下载代码到flash。使用串口下载代码时使用 内置SRAM:访问SRAM GPIO 一个GPIO端口至少需要两个寄存器,一个做控制用的“通用I/O端口控制寄存器”,还有一个是存…