- 博客(32)
- 收藏
- 关注
原创 树莓派(ubuntu系统)开机自启动脚本
*保存并退出:**按下 Ctrl + X,然后输入 Y 来保存修改,然后按 Enter 键确认保存文件。**保存并退出:**按下 Ctrl + X,然后输入 Y 来保存修改,然后按 Enter 键确认保存文件。**连接到树莓派:**首先,在 PuTTY 中输入树莓派的 IP 地址或主机名,然后点击“打开”按钮。**登录树莓派:**在 PuTTY 窗口中,输入你的树莓派的用户名和密码,然后按 Enter 键登录。这样重新开机后会自动打开thonny然后运行脚本。完成的是树莓派开机自启动Python脚本。
2024-04-22 16:13:01 520
原创 树莓派部署yolov5实现目标检测(ubuntu22.04.3)
查看树莓派ip,直接查看连接热点的设备,最后去WinSCP官网https://winscp.net/eng/download.php下载软件即可,注意传文件的时候需要电脑和树莓派连着同一个热点。把刚转好的三个包移动到与pytorch同一目录下(/home/用户名/),解压yolov5-5.0。最近两天搞了一下树莓派部署yolov5,有点难搞(这个东西有点老,版本冲突有些包废弃了等等)安装完成后,到这里部署已经基本完成了,后面是检测的部分了。(遇到y/n,输入y+回车)
2024-04-04 20:27:49 1953 2
原创 排序(链表)
首先说一下程序运行时间的计算:一般法则:法则1—for循环:一次 for 循环的运行时间至多是该 for 循环内语句(包括测试)的运行时间乘以迭代次数。法则2–嵌套的for循环:自内向外分析,在一组嵌套循环内部的一条语句总的运行时间为该语句的运行时间乘以该组所有的 for 循环的大小的乘积。法则3–顺序语句:将各个语句的运行时间求和即可(其中的最大值就是所得的运行时间)。法则4–if/else语句:一个 if/else 语句的运行时间从不超过判断的时间加上两种情况中运行时间较长者的总的运行
2022-12-07 18:13:52 397
原创 动态分配内存
为什么要用动态内存分配呢?用数组它不好嘛?使用数组来存数数据的时候,必须先声明一个常量来指定数组的长度,也就是它所需要的内存空间取决于输入数据,这种方法在程序中引入了人为的限制,虽然简单,但是如果所需要的空间超过数组的容纳范围,就无法处理了,只能去更改程序,有了动态内存分配,我们就可以在程序运行的过程中根据实际情况来申请空间。...
2022-02-17 23:40:12 749 1
原创 数据结构--链表题七--旋转链表(leetcode--61)
题目描述:给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[4,5,1,2,3]示例 2:输入:head = [0,1,2], k = 4输出:[2,0,1]提示:链表中节点的数目在范围 [0, 500] 内-100 <= Node.val <= 1000 <= k <= 2 * 109忙死了…带着烦躁的心情把这题暴力解决掉:题解:解题思路:1.先
2022-01-28 22:57:15 560 2
原创 数据结构--链表题六--删除链表的节点(leetcode--剑指 Offer 18)
今天偷个懒题目描述:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表
2022-01-26 15:34:53 586
原创 数据结构--链表题五--反转链表(leetcode-剑指 Offer II 024)
题目描述:给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000题解:解题思路1:遍历两遍链表,第一次把所有值取出来,第二次给链表重新赋值(这种解法比较繁琐)/**
2022-01-25 17:16:45 807
原创 数据结构--链表题四-两两交换链表中的节点(leetcode-24)
题目描述:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]提示:链表中节点的数目在范围 [0, 100] 内0 <= Node.val <= 100题解:这题对于空链表和只有一个节点的链表直接返回链表即可,对于节点数大于
2022-01-24 13:40:24 236
原创 数据结构--链表题三--合并两个有序链表(leetcode-21)
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 100l1 和 l2 均按 非递减顺序 排列题解:由于没有看清题(
2022-01-23 20:34:00 267
原创 数据结构--链表题二--两数相加(leetcode-2)
题目描述:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9,9]
2022-01-22 17:03:29 161
原创 数据结构--链表题一--删除链表的倒数第N个节点(leetcode-19)
题目描述:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 300 <= Node.val <= 1001 <= n <= sz题解:解题思路设立三个节点
2022-01-20 18:16:41 506
原创 基于51单片机蓝牙直流电机控制(IR2104S驱动H桥)
主要目标:(1)用51系列单片机作为控制器;(2)采用由四个MOS管组成的H桥电机驱动电路,并由IR2104S来驱动H桥;(3)可实现电机正、反转,启停,加、减速;(4)可采用蓝牙、按键进行效果切换,并加有LED灯(左、右方向灯)及蜂鸣器报警电路(转向时报警);(5)采用5V直流稳压电源;主要内容:1、最小系统设计;2、综合布局设计;3、蓝牙控制C程序设计;4、按键控制C程序设计;5、方向灯及蜂鸣器C程序设计;6、仿真观察实验效果;7、电路焊接与调试;要实现所要求的功能首先需要规
2022-01-19 23:42:40 11581 12
原创 数据结构--链表
首先介绍一下抽象数据类型(Abstract Data Type, ADT), 它是一些操作的集合,但未定义如何实现这些操作,例如表,集合,图以及它们的操作都可以看作为 ADT 。对于一个集合 ADT,我们可以编写一些自己想要用到的操作,并且这些操作只在程序中编写一次,在程序中的其它部分需要用到某些操作(比如求大小,求并等)的时候,通过直接调用其中的函数来达到目的。(对表的操作都可以通过使用数组(线性的)来实现,但是简单数组一般不用来实现表这种结构(某些操作的运行缓慢,若表的大小未知的前提下,通常需要开一
2022-01-19 22:52:11 432
原创 C/C++指针基础--指针和多维数组
指针和多位数组有啥关系嘞?我们先定义一个数组:int array[4][3];我们知道数组名是该数组的首元素的地址,array[0][0] 是一个内含两个 int 型的数组,所以array 是这个内含两个 int 值的数组的地址;则 array = &array[0], 也即 array = &array[0][0]。那么 array 和 array[0] 有啥区别呢?array 占用了两个 int 大小对象的地址,而 array[0] 占用了一个 int 大小对象的地址
2021-09-23 20:24:56 216
原创 C/C++指针基础--函数、指针、数组
计算机的硬件指令非常依赖地址,指针在某种程度上把程序员想要表达的指令以更接近机器指令的方式表达,从而有时候是用指针会更加有效率,譬如工程里减少代码修改等等。指针可以有效处理数组,其实数组也是变相的在使用指针。Ex: 假如 Arry 是一个数组,那么 Arry == & Arry[0]。(数组名是该数组首元素的地址) Arry和 &Arry[0] 都是常量,在程序运行过程中不会改变,但是可以把他们赋值给指针变量,对于指针变量我们可以修改它的值。下面我们来看一下下面的例子,给指针变量加上一
2021-09-23 17:01:57 212
原创 C/C++指针基础--指针函数间通信
变量的名称,地址和变量的值之间的关系密切。编写程序时,先考虑变量有两个属性名称和值(其它先不考虑,如类型),计算机编译和加载程序后认为变量也有两个属性:地址和值,可以认为地址就是变量在计算机内部的名称。在C中可以运用&(取地址符)访问变量的地址,运用*(间接运算符)获取该地址上的值。EX:&salary表示变量salary的地址,如果p = &salary, 那么*p表示存储在&salary上的值。*简而言之,就是普通变量把值作为基本量,把地址作为通过&获得的派生
2021-09-22 21:00:28 207
原创 C/C++指针基础--认识指针
什么是指针?从根本上看,指针是一个值为内存地址的变量,即指针变量的值为地址。在32位计算机中,一个指针占4 Byte, 而64位中一个指针占8 Byte。(CPU无法直接在硬盘上读取数据,是通过内存读取的(地址总线,数据总线,控制总线),CPU通过地址总线找到该条数据,通过控制总线判断是读(Re)还是写(Wr), 通过数据总线将改数据读取到CPU或者从CPU写到内存中。所以,地址总线的宽度决定了CPU的寻址功能,数据总线的宽度决定了CPU单次数据传输的传送量(也就是数据传输速度),控制总线决定了CPU
2021-09-20 22:23:23 193
原创 Problem: 汉诺塔III
Description汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。那些智力题总是要求人们用最少的步骤完成题目中的要求。为什么非要最少呢?这次我们来点特别的,我希望你的程序能够用最多的步数达到要求,而且在此过程中不重复出现任何一种状态。Input输入包含多组数据测
2021-01-10 09:59:27 261
原创 汉诺塔(移动路径)
现在有三个柱子,a ,b, c; a上有n个盘子,从上到下盘子的大小依次增大。现在要让a上的所有盘子移动到c上(小盘子只能在大盘子的上),要求输出每次移动的路径。这种题呢,就是递归问题,很简单的。假如n=3,那么路径就是a->c,a->b,c->b,a->c,b->a,b->c,a->c;那么如果是n个呢,我们知道大盘子一定在下面,那么我们就必须让最大的放在c上,那么当移动到a上只有1个盘子的时候,此时c上必须是空的,这也就意味着,有n-1个盘子在b上面;所以
2021-01-10 09:25:44 637
原创 strcat函数--字符串连接函数
strcat是STRing CATenate(字符串连接)的缩写,调用strcat函数首先要有<string.h>这个头文件,它的作用是把两个字符数组中的字符串连接起来,把字符串2连接到字符串1的后面。注意:1.字符数组1必须足够大;2.连接时将字符串1后面的’\0’取消,只在新字符串最后保留’\0’;3.直接strcat(str1,str2)就行,不用新定义数组存放;举个例子:Sample Inputcai niaoSample OutputI am cai niao,
2021-01-09 10:59:26 6269 4
原创 快速排序
桶浪费空间,冒泡浪费时间,快排一听就很厉害。快排之所以比较快,是因为每次是跳跃式的,把所需排序的分好几个部分先后进行排序。(快排是基于“二分”的思想)每次排序的时候,设置一个基准点,将小于等于基准点的数全部放到基准点左边,将大于等于基准点的数全部放倒右边,这样交换的距离大多了,总的比较次数和交换次数就少了,但在最坏的情况下,仍可能是相邻两个数交换,所以快排的最差时间复杂度和冒泡一样,都是O(n^2),平均时间复杂度是O(nlogn)。下面来具体介绍一下:现在给定一组数3 1 4 5 2,对他们进行从小到大
2021-01-09 00:53:44 178 4
原创 (冒泡排序) Problem: 并列排名
冒泡排序原理就是:如果有n个数,相邻的两个数进行比较,就是1号和2号,2号和3号…n-1号和n号比较,每次比较确定一个数的位置。也就是第一个轮回比较n-1次,第二个就比较n-2次,直到只需要比较两个数为止。核心部分就是双重嵌套循环,但是从这可以看出它的时间复杂度是O(n^2),复杂度很高。下面举一个例子,顺带解决输出数的拥有者的问题;Output分数相同的,先输入的先输出Sample Input5菜鸟1号 90菜鸟2号 80菜鸟3号 60菜鸟4号 90菜鸟5号 70Samp
2021-01-07 20:13:24 1574
原创 “桶排序”(简化版)
排序问题:简单说就是现在给定10个空的桶,编号0~9。每个桶都有自己的编号,如果输入的数据属于某个桶的编号,那么就在那个桶里放一个球。举个例子:现在给定n个数,要将它们从小到大输出,那么用上述排序的方法,很快就能搞定。代码如下:#include<stdio.h>#include<string.h> int main(){ int book[10],n,t,i,j; memset(book,0,sizeof(book)); //调用memset函数需要有
2021-01-06 21:05:00 113
原创 Problem: Fair Division
DescriptionAlice and Bob received n candies from their parents. Each candy weighs either 1 gram or 2 grams. Now they want to divide all candies among themselves fairly so that the total weight of Alice’s candies is equal to the total weight of Bob’s cand
2021-01-05 10:41:50 325
原创 Problem: Cards for Friends
DescriptionFor the New Year, Polycarp decided to send postcards to all his n friends. He wants to make postcards with his own hands. For this purpose, he has a sheet of paper of size w×h, which can be cut into pieces.Polycarp can cut any sheet of paper w
2021-01-05 10:21:18 229
原创 Problem: 兔子繁殖(斐波那契问题)
Description有一种兔子,出生后一个月就可以长大,然后再过一个月一对长大的兔子就可以生育一对小兔子且以后每个月都能生育一对。现在,我们有一对刚出生的这种兔子,那么,n个月过后,我们会有多少对兔子呢?假设所有的兔子都不会死亡。Input输入文件仅一行,包含一个自然数n (1 <= n <= 50)。Output输出文件仅一行,包含一个自然数,即n个月后兔子的对数。Sample Input5Sample Output5Hint这题就是1 1 2 3 5 8…但是要注意程
2021-01-04 17:54:43 1222
原创 Problem: 美丽的黄山 (指针)
Description众所周知,黄山市一片山(而不是一座山)。假设这些山排成了一排,每座山有各自的高度。现在游客们从最左边看山,有些山因为高度没有它左边的某座山高,就会被遮住,游客们就无法看到。现在请告诉游客,他能看到几座山(看到山顶即可被认为看到了,如果恰好山顶被遮住了,这座山也不算被看到)Input第1行1个正整数n,表示有N座山第2行N个正整数,依次表示从左到右每座山的高度,每2个数之间用一个空格隔开Output一行一个正整数,表示从左端看,能看到多少座山Sample Input53
2021-01-03 22:52:56 2400
原创 Problem: 平板游戏
Description小黑和小白喜欢玩平板游戏,游戏一开始屏幕上会出现很多个图形,玩家在每一轮可以合并两个图形,当只有一个图形的时候游戏结束,每个图形都有一个大小,合并完成后的图形的大小为x+y,x和y分别为合并之前的两个图形,与此同时,玩家会获得x*y的分数。小黑和小白新开了一盘游戏,屏幕上出现了n个图形,每个图形的大小已知,请算出小黑和小白最大能获得的分数Input第一行输入一个整数n (2 <= n <= 100 )第二行输入n个整数范围在1到100之间Output输出一个
2021-01-03 15:34:02 216
原创 Problem :成绩统计(结构体)
Description兴趣小组收集学员成绩信息,每个学员的成绩有两种表示方法,一种用best、good、poor三种等级来表示,还有一种就是直接用分数来表示(百分制)。请保持学员成绩信息,并且统计有多少人是用等级来表示成绩的,用分数来表示成绩的人的平均分是多少(取整)Input第1行输入1个正整数n表示学员人数(n<=1000)第2~n+1行,每行一个字符和一个字符串,中间用一个空格隔开。第一个字符串表示这个学生成绩类型,有C、N两种,分别代表等级表示和分数表示,第二个字符串表示成绩信息Ou
2021-01-03 14:47:37 661
原创 Problem:三角形计数
三角形计数Description快码佳编四兄弟姐妹来到了明代,这天他们看到一个很有学术风范的老者在地上画着东西,一打听,原来是著名的数学家徐光启。徐光启在数学方面的最大贡献当推《几何原本》(前6卷)翻译。徐光启提出了实用的“度数之学“的思想,同时还撰写了《勾股义》和《测量异同》两书。他们看到徐先生在地上画着好多三角形。把大三角形的每条边n等分,将对应的等分点连接起来(连接线分别平行于三条边),这样一共会有多少三角形呢?编程来解决这个问题Input第一行为整数t(≤100),表示测试数据组数;接下来t
2021-01-01 21:58:06 1290 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人