2021年3月3日学习记录

DRV8870电机驱动芯片原理与嵌入式多平台驱动开发 H桥电机驱动芯片是直流电机控制的核心硬件模块,其通过双MOSFET拓扑实现方向与速度的精确调控。工作原理基于电荷泵自举驱动、集成电流检测及多重硬件保护机制,技术价值体现在高集成度、宽压适配(4.5V–45V)与强鲁棒性。典型应用场景涵盖智能机器人执行器、工业自动化设备及电池供电移动终端。本文围绕DRV8870这一主流驱动芯片,深入解析其PH/EN与Dual PWM双控制模式、nFAULT故障响应机制,并结合Arduino/ESP32/STM32三大平台,提供可复用的跨MCU驱动库设计范式与FreeRTOS实 阅读详情

学习记录

每日任务有两项:做题和总结当天所学知识。做题由简单到困难,刷题顺序是PAT->蓝桥杯->牛客->力扣->PAT···
写博客进行自我监督
day 3✔

力扣练习

力扣算法篇 AC题目:3 无重复字符的最长子串,4 寻找两个正序数组的中位数

3 题目描述:

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

测试用例1:
输入:s = "abcabcbb"
输出:3

测试用例2:
输入:s = "bbbbb"
输出:1

测试用例3:
输入:s = "pwwkew"
输出:3

测试用例3:
输入:s = ""
输出:0

此题暴力解法:
直接将所有的字串查找出来,遇到大的记录(这样写的效率十分之低,甚至在力扣上连末尾都算不上)

此题C语言代码如下:
int lengthOfLongestSubstring(char * s){
    int len = strlen(s);
    if(len == 0){
        return 0;
    }else if(len == 1){
        return 1;
    }else{
        int count;
        int max = 0;
        int flag;
        for(int i = 0;i < strlen(s);++i){
            for(int j = i + 1;j < strlen(s);++j){
                flag = 0;
                count = 0;
                for(int k = i;k < j;++k){
                    if(s[j] == s[k]){
                        flag = 1;
                        break;
                    }
                    count++;
                }
                if(count + 1 > max){
                    max = count + 1;
                }
                if(flag){
                    break;
                }
            }
        }
        return max;
    }
}

4 题目描述:

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。

测试用例1:
输入:nums1 = [1,3], nums2 = [2]
输出:2.00000

测试用例2:
输入:nums1 = [1,2], nums2 = [3,4]
输出:2.50000

测试用例3:
输入:nums1 = [0,0], nums2 = [0,0]
输出:0.00000

测试用例4:
输入:nums1 = [], nums2 = [1]
输出:1.00000

测试用例5:
输入:nums1 = [2], nums2 = []
输出:2.00000

此题个人解法:
因为两个数组均为有序且从小到大依次排列,所以我们可以从两个数组的最小的也就是左边开始比较,并且将小的那一个记录下来(这里用mid用来表示用来记录的数),还有要将mid改变的次数记录下来。
从测试用例中我们可以看到一些特殊的情况:
一、当左边数组为空时我们可以知道中位数必定会在右边的数组中,此时又有3种情况:

  1. 当右边的长度只有1时,则返回右边数组的数即可
  2. 当右边长度>1且为偶数的时候就需要将右边数组长度一半减1的位置(的数)加上右边数组长度一半的位置(的数)后除去2
  3. 当右边长度>1且为技术的时候直接返回右边数组长度一半的位置上的数即可。

右边为空时反之。
二、当左边的长度大于右边的长度时,当记录右边数组元素的下标越界的时候要将记录右边元素位置的下标转移到记录当前左边数组下标的后一个,并且按照原来的规则进行比较。不过这时候的区别就是,用于记录位置的两个下标都要后移。当两个数组的长度和为偶数时:函数需要返回的值为当前记录的mid值与 j 所对应的左边的数组元素求和后并除于2。当两个数组的长度和为奇数时:函数返回mid值即可。

tip:并不是左边(右边)比右边(左边)长度大的时候都会产生下标越界

右边长度大于左边长度时类似。

三、当两边数组长度一致时,正常规则比较即可。但是这里有一个点需要注意:就是两边中的其中一边的数组界限把另一边的包含在其中了。例如:左边[1,2] 右边[-1,3]这样如果按照上面的贪心算法继续执行的话会造成i 或者 j的值并不是我们想要的,所以我们还要在函数返回前在确认右边当前位置的数是否大于左边当前当前位置的后一个位置的数。如果大于,那么说明右边的界限将左边包含了进去。

反之亦然。

这里还有一点需要注意的就是如果mid值定义的是整形的话,在函数返回值的时候要做*1.0的处理,这是为了让数据在进行类型转换的时候不产生误差(这里本人反复调试了40分钟。。血的教训啊)。说到这里基本解题思路就讲完了。下面就上代码,有兴趣的可以用手走一遍程序。(值得高兴的事这题除了花的时间有点长外,我的时间复杂度超过了91的人,空间复杂度超过81的人。请容许我得瑟一会,大佬轻喷。。)

代码如下:
double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size){
    int mid = 0;
    int count = 0;
    int flag = 0;
    int i,j;
    i = j = 0;
    if(nums1Size == 0){
        if(nums2Size == 1){
            return nums2[0];
        }else if(nums2Size % 2 == 0){
            return (nums2[nums2Size/2]+nums2[nums2Size/2 - 1])* 1.0 / 2;
        }else{
            return nums2[nums2Size/2];
        }
    }else if(nums2Size == 0){
        if(nums1Size == 1){
            return nums1[0];
        }else if(nums1Size % 2 == 0){
            return (nums1[nums1Size/2]+nums1[nums1Size/2 - 1])* 1.0 / 2;
        }else{
            return nums1[nums1Size/2];
        }
    }
    while(1){
        if(flag == 0){
            mid = nums1[i] <= nums2[j] ? nums1[i] : nums2[j];
        }else if(flag == 1){
            mid = nums2[i] <= nums2[j] ? nums2[i] : nums2[j];
        }else{
            mid = nums1[i] <= nums1[j] ? nums1[i] : nums1[j];
        }
        ++count;
        if((nums1Size + nums2Size) % 2 == 0 && count == (nums1Size + nums2Size) / 2){
            if(flag == 0){
                if(mid == nums1[i]){
                    if(i != nums1Size - 1){
                        if(nums2[j] > nums1[i+1]){
                            return (mid + nums1[i+1])* 1.0 / 2;
                        }
                    }
                    return (mid + nums2[j])* 1.0 / 2;
                }else{
                    if(j != nums2Size - 1){
                        if(nums1[i] > nums2[j+1]){
                            return (mid + nums2[j+1])* 1.0 / 2;
                        }
                    }
                    return (mid + nums1[i])* 1.0 / 2;
                }
            }else if(flag == 1){
                return (mid + nums2[j])* 1.0 / 2;
            }else{
                return (mid + nums1[j])* 1.0 / 2;
            }
        }else if((nums1Size + nums2Size) % 2 == 1 && count == (nums1Size + nums2Size) / 2 + 1){
            return mid;
        }
        if(flag == 0){
            nums1[i] < nums2[j] ? ++i : ++j;
        }else if(flag == 1){
            ++i;
            ++j;
        }else{
            ++i;
            ++j;
        }
        if(i == nums1Size && flag != 1){
            i = j;
            ++j;
            flag = 1;
        }else if(j == nums2Size && flag != 2){
            j = i+1;
            flag = 2;
        }
    }
}

网络基础知识:

吞吐量相关名词:容量,网络负载,时延
容量:两个相连节点的最大带宽
时延有发送时延,传输时延,等待时延,接收时延这四个。

在网络传输中时延抖动应小于时延的1%~2%。
时延抖动可以判断该网络的实时性。

路由选择算法:RIP,OSPF
RIP:最短路径优先,并且16跳后数据包不可达
OSPF:最有接口带宽。

数据在网络中传输时:数据帧越大,误码率越高。(但是现在的网络环境并不是这样)
数据交换有3种:电路交换,报文交换,分组交换。
电路交换:在传输时独占线路。
报文交换:在路由空闲时传输。
分组交换:将一个数据包分为几份再将其发送除去。

关于CTF的学习:

安装kali机与靶机,在kali机上使用netdiscover -r ip/mask的形式来探测网段内的IP。
还有当kali忘记root密码之后😅要怎么做。
(参考网址:https://www.cnblogs.com/nuomin/p/5708637.html)


于2021年3月4日00点44分完成博客编写,若发现错误望指正。
【干货分享】高通 SA8295P PCB 设计规范指南 高通SA8295P芯片是第四代骁龙汽车数字座舱平台的核心组件,采用5nm工艺,集成高性能CPU/GPU和30TOPS算力的NPU。文章详细介绍了该芯片各接口的layout设计规范,包括USB3.1/2.0、eDP/DP、MIPI CSI/DSI、PCIe Gen3等接口的阻抗、损耗、延时等关键指标要求,为新能源汽车电子设计提供重要参考。 阅读详情

相关推荐

Simulink中Simscape—Fluids模块(原Simhydraulics)学习记录

学习来源:http://cn.mathworks.com/help/physmod/hydro/getting-started-with-simhydraulics.html 主要学习内容如下图: 详细内容: 1、组件来源 SIMULINK浏览器中的模块:Simscape_Foundation 和 Simscape_Fluids。 2、Simscape下包括多个子

1万+

2021-03-03

始于2021-03-03、我的学习之路从零开始了!

zo9ukai1993的博客 306

分享一个简单的迭代学习机器人双臂控制(MATLAB)

1 什么是迭代学习控制 迭代学习控制(iterative learning control,简称ILC)由Uchiyama于1978年首先提出,不过因为论文由日文撰写,影响不是很大。1984年,Arimoto等人用英文介绍了该方法。它是指不断重复一个同样轨迹的控制尝试,并以此修正控制律,以得到非常好的控制效果的控制方法。 迭代学习控制的特点是“在重复中学习”,通过反复的迭代修正,达到改善控制效果的目的。迭代学习控制的原理是根据系统前次运行所获得的输出误差信息,在控制过程中不断修正控制输入,随着迭代的进行,逐

weixin_45776027的博客 4486

自学linux记录 2025年3月8日

这是作业

weixin_44084487的博客 1886

【ROS】ROS局域网下多机通讯方法

最近工作中需要用到多机通讯,这里稍微总结一下使用方法。一、网络配置ifconfig这里举个例子,主机的IP地址为192.168.1.127,从机的IP地址为192.168.1.126;之后可测试一下能否互相ping通,成功后进行下一步。

weixin_43326110的博客 3361

STM32 使用rtthread的DMA 串口发送失败

在一次使用RTthread的DMA 串口发送时,持续性通过DMA 发送串口数据时,偶发发送过程中后续数据包无法正常发送出去,后经查,发现为RT-Thread的串口中断处理有瑕疵,后做出修改。另,为了更方便的排查为题,建议修改。左为修改前,右为修改后。

qq_39294918的博客 1108

2021年3月7日学习记录

学习记录 每日任务有两项:做题和总结当天所学知识。做题由简单到困难,刷题顺序是PAT->蓝桥杯->牛客->力扣->PAT··· 写博客进行自我监督 day 7✔ 重新计划了一下,周日专门用来完成课时作业。 关于思科的练习 思科配置命令及其作用 思科配置命令及其作用的学习 学习命令基本步骤: 明确命令使用的环境以及使用者或者参与身份(明确需求) 明确使用到命令的作用 清楚命令的基本参数 学会检测命令是否配置生效 现在有一个局域网中的交换机需要交给我们配置。 要求如下: 将

admin_mds的博客 226

YOLOv11改进 | Conv改进篇 | 含2种改进,引入DynamicConv替换普通Conv卷积下采样和C3k2_DynamicConv替换C3k2(来自CVPR2024)

本文提出了一种基于DynamicConv动态卷积优化的YOLOv11轻量化模型改进方案。通过引入多专家机制的动态卷积模块,在增加模型参数量的同时保持较低的计算复杂度(FLOPs),有效解决了低FLOPs模型在大规模预训练中的性能瓶颈问题。文章详细介绍了动态卷积的工作原理、核心代码实现,并提供了在YOLOv11中集成DynamicConv和C3k2_GhostModule_DynamicConv模块的完整教程,包括模块添加、配置文件修改和模型训练验证过程。实验结果表明,该方案在保持高效推理速度的同时显著提升了

Ai缝合怪、助力小伙伴高效发论文 537

2021年3月1日 学习记录

蓝桥杯练习 每日任务有两项:做题和总结当天所学知识。做题由简单到困难,刷题顺序是PAT->蓝桥杯->牛客->力扣->PAT··· 写博客进行自我监督 day 1✔ 蓝桥杯简单题目(算法提高题集): AC的:ADV-376 小写转换为大写 , ADV-354 质数 , ADV-374 水仙花数 未完成题目:ADV-375 翔集合 上面AC的题目较为简单这里就没粘代码的必要,只要按照题目的意思去做就行。 这里总结一下未完成题目: 错误点1:n = 4时 满足条件的子集为1 4,5的子集为

admin_mds的博客 265

古风仙侠少女三视图提示词,一键生成角色设定

3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。平视正交视角,统一光照,纯白背景,无文字无水印,避免强透视和动态变形。3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。少女,古风仙侠少女气质,灵动、温婉、仙气。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 1069

汽车UDS诊断之诊断会话控制服务(0x10)深度剖析

DiagnosticSessionControl就是诊断会话控制。 请求消息定义 A_Data类型 参数名称 Cvt 字节值 助记符 #1 诊断会话控制请求SID M 0x10 DSC #2 子功能=[诊断会话类型] M 0x00-0xFF LEV_DS_ ...

心骗小白话的博客 7420

神武3 服务器维护公告,2021年3月19日更新公告

2021年3月19日更新公告关键字:发布时间:2021-03-19本周重点更新内容:1、半价转门派及重置属性预告2、新增全明星名人堂3、三界仙魔录4、一键附魔功能限服开启此外还对页签模式、150级以上玩家使用经验书数量、宠物护符重置等进行了调整,详细更新内容如下:1、半价转门派及重置属性预告:(1)优惠时间从2021年4月9日维护后至2021年5月9日24时;(2)优惠时段内角色转换门派可享受2次...

weixin_39678493的博客 495

柔性电极材料新突破:清华团队实现0.1mV级脑信号采集精度

清华团队的 0.1mV 级柔性电极突破,不仅是材料科学与神经工程的跨界胜利,更标志着脑机接口从 “信号采集” 向 “神经交互” 的范式转变。当电极与脑组织实现 “柔性共生”,人类首次拥有了窥探大脑微观电活动的 “精密探头”,这既是神经疾病诊疗的里程碑,更是人机融合时代的新起点。随着技术标准化与产业生态的完善,这场始于实验室的 “柔性革命”,正加速向临床病房、智能工厂、消费电子等场景渗透,为脑机接口的大规模应用铺设 “柔性跑道”。:当柔性电极实现 “神经信号的无损捕捉”,如何平衡技术创新与伦理边界?

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2946

2021年3月8日与3月9日学习记录

今日因时间过晚,把忘记的C语言指针部分捡了回来,明日大更新! 以上发布于2021年3月9日00:32。

admin_mds的博客 179

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

2025年3月22日自学linux记录

特性:用 systemd 实现init进程,系统启动和服务器守护进程管理器,负责在系统启动或运行时,激活系统资源,服务器进程和其它进程流程:1. UEFi或BIOS初始化,运行POST开机自检2. 选择启动设备3. 引导装载程序, centos7是grub2,加载装载程序的配置文件: /etc/grub.d/,4. 加载initramfs驱动模块(可以实现根文件系统的挂载)5. 加载虚拟根中的内核。

weixin_44084487的博客 1060

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

自学linux记录 2025年3月15日

以Rocky为例:找到网卡配置文件目录:将原有的DHCP更换成我们静态IP地址更改为同医局域网下 的IP地址:重新加载网卡配置文件:[root@ltx-rockycloud ~]$ nmcli connection reload ----重新加载配置文件[root@ltx-rockycloud ~]$ nmcli connection ---- 查看网卡状态,绿色即为启动中ping www.baidu.com,为通,则为成功。

weixin_44084487的博客 654

每日新闻掌握【2025年3月25日 星期二】

(凤凰网科技、科创板日报)同时,上交所还在国务院国资委指导下召开央企集团与央企科创板上市公司座谈会,与会各方围绕央企积极布局科创板、推进新质生产力领域产业整合、加强市值管理等方面的进展情况、问题诉求和意见建议等开展交流,推动央企聚焦科技创新、加快产业转型,利用科创板平台的独特优势实现高质量发展。3月24日,美团核心本地商业CEO王莆中在社交媒体上发文透露,美团正在积极发挥内部的数据、场景和产业优势做一款Native AI产品,愿景是“每个人都能有一个专属的生活小秘书”,目前公司在招聘AI研发和产品人员。

1257

2025年3月29日自学linux记录

配置文件位置:#主配置文件#授权规则配置文件配置格式:user host=(runas) [TAG:]command #授权user用户可以在host主机上以runas的身份执行command,TAG可为空#可使用通配符?[abc]abc]\x[[alpha]]#任意单个字符#任意长度字符#匹配abc中的一个字符#匹配任意一个除abc之外的字符#转义#字母#user 和 runnas。

weixin_44084487的博客 1083

2021年3月19日 百度开发实习面试(质量效能研发部)(一面)

title: 2021年3月19日 百度开发实习面试(质量效能研发部)(一面) tags: 面经 2021年3月19日 百度开发实习面试(质量效能研发部)(一面) 自我介绍 介绍项目 你介绍一下hashmap吧 说一下hashmap 什么时候需要扩容呢? 为什么hashmap 的初始长度要设置为16呢? 说一下hashmap为什么不是安全的呢? 写一个单例模式吧,你写的这个单例模式是属于哪一个单例模式,另一种单例是什么呢? 写一个代码题:求解根号3 再写个代码题吧,利用.

qq_39350172的博客 1966

2024年3月29日,学习记录

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

m0_64257960的博客 1730

(工作记录)2020年3月11日至2021年3月15日

工作记录,单片机

Kshine2017的博客 1263

独立游戏开发日志:2021年3月3日 Ragdoll系统 在哪跌倒就在哪躺下

Ragdoll系统教程计划中 独立游戏开发日志:2021年3月3日 Rag doll系统

开发游戏的老王 722

2021年3月4日

2021年3月4日

IVON 285

每日新闻掌握【2025年3月22日 星期六】

36氪获悉,3月20日下午,百度召开信息安全沟通会,针对事件的调查过程及结果进行现场说明,并展示经三方公证的“(2025)京精诚内经证字第1642号”公证书。该书由中国经济信息社编写,内容聚焦人工智能技术在数字政府建设中的应用,详细阐述了其在“高效办成一件事”、“一网通办”、政务服务大厅、12345热线、智慧城市等多个领域中的创新探索,展现了人工智能赋能数字政府建设的生动实践,深入探讨DeepSeek等人工智能技术如何赋能政务服务效能提升和城市治理现代化,为从事和关注数字政府建设的各界人士提供参考。

967

自学linux记录 2025年3月2日作业

1.1 、cat 可以查看文件的内容1.2、cat -A /wenjianjia/file2.txt ---查看所有文件内容下的字符显示1.3、cat -n file2.txt-----对显示的内容进行编号。1.4、nl file2.txt ----查看显示内容进行编号。1.5、tac file2.txt ----对文本进行倒序显示1.6、rev file2.txt ----把文本进行上下前后顺序颠倒1.7、hexdump /dev/sda---查看非文本内容。

weixin_44084487的博客 891

2024年3月28日 Linux命令、nginx应用学习

rm慎重使用!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

m0_64257960的博客 676

2021年3月29日 阿里菜鸟实习面试(一面)(含部分总结)

title: 2021年3月29号 阿里菜鸟实习面试(一面) tags: 面经 2021年3月29日 阿里菜鸟实习面试(一面) 自我介绍 你为什么想做Java开发工程师 你还做了除了飞机大战,还做了什么Java的项目吗? 你讲讲你付出精力最多的项目,讲讲你做了什么工作以及达到什么效果呢? 讲讲你的飞机大战的多线程编程是如何编写的 你是如何实现多线程的呢?还有没其他的方式去实现线程安全呢? 介绍一下synchronized关键字以及底层实现原理 synchronized修饰这个类的时候,会对类中的实例对.

qq_39350172的博客 935
上一篇: 2021年3月2日 学习记录
下一篇: 2021年3月7日之前学习记录
mds3
博客等级 码龄7年 5粉丝 18原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值