自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (1)
  • 收藏
  • 关注

原创 llm-universe 踩坑记录

datawhale开源项目学习

2025-04-02 23:45:40 186

原创 uboot环境变量配置

在uboot下面的board.celse代码选择不同的环境变量,因此可以通过自定义cfg文件,来让uboot读取,因此需要在cfg文件定义环境变量在flash的哪个分区,也就是mtdparts变量flash分区flash分区可以自定义,但uboot分区在第一个,以下是常见的分区排布方式:uboot+DTB+kernel+rootfs+自定义分区可以在分区中指定一个uboot的环境变量分区env在xxxxconfig.h中定义。

2023-11-27 18:43:42 593

原创 STL源码剖析

STL八股速通

2022-07-25 17:29:33 908

原创 Linux高性能服务器 笔记

第一章 TCP/IP协议簇这里每层的协议的功能就不再重复了。主要有个清晰的了解** 重点**``应用层的数据放入内核发送缓冲区,然后TCP模块调用IP的服务。这些工作对于用户来说,只用socket中的send()就可以完成这点可以联系第三章的TCP服务特点ARP(通过ip找到MAC地址)主机向自己所以的网络广播一个ARP请求,请求包含目的机器的网络地址,请求的机器会回应一个ARP应答,包含自己的MAC地址下面是我自己通过tcpdump抓的ARP, Request who-has 19

2022-04-21 20:21:22 2603

原创 双指针&&二分法

最近看代码随心录,跟着第一部分数组,学了两个方法二分模板,确定左右边界问题 int left = 0; int right = nums.size() - 1; // 定义target在左闭右闭的区间里,[left, right] while (left <= right) { // 当left==right,区间[left, right]依然有效,所以用 <= int middle = left + ((right - left) / 2);/

2022-04-03 16:51:30 610

原创 ubuntu16.04安装Cmake

apt安装cmake真的慢吐了建议去cmakle官方下载对应版本解压tar -zxvf xxx.tar.gz打开环境变量vim ~/.bashrc在末尾添加环境变量export PATH=/home/user/cmake/bin:$PATH中间是你的cmake目录然后cmake --version测试一下...

2022-03-26 20:43:28 2998 2

原创 g++ 支持C11编译办法

g++ -std=c++11 *.c -o

2022-03-26 20:31:40 943

原创 leetcode 572. 另一棵树的子树

另一棵树的子树题目题解2021.12.7题目题解递归官方题解还用到了kmp和哈希的。。。。这里我就没看了2021.12.7这题的递归,我有点没弄明白,后来看了题解才忽略了,两个二叉树完全相等的情况。。。。class Solution {public: bool check(TreeNode*root,TreeNode*subRoot) //判断是否是一个相同的树 { //递归结束条件一:当其左右子树为空 代表已经匹配上 if(root ==

2021-12-07 22:32:46 739

原创 leetcode 100. 相同的树

相同的树题目解法2021.12.7迭代最近在看卡尔的代码随想录,最近看到二叉树的题目比较多,就想着顺便把二叉树的题复习下题目解法递归迭代2021.12.7递归class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if (p == null && q == null) { return true; } else if (p ==

2021-12-07 22:05:03 836

原创 LeetcodeHOT100——121.买卖股票的时机

买卖股票的最佳时机题目题解2021.12.6 贪心2021.12.6背包题目题解贪心背包解法(这个我还没理解透。。。。)2021.12.6 贪心这个贪心我看题解感觉容易理解,但是看背包的理论的真觉得脑子不够用。但是我想了下,为什么假设的历史最低价格都要设为很大的值?后来,想了下,我觉得是因为我们要找当日价格和历史最低价之间取min值,因此历史最低价不能定最小值,也不能设定为0,要不然卖出的价格不会更新了,一直都是我们设定的历史最低价。class Solution {public:

2021-12-07 15:56:47 229

原创 Leetcode HOT100——101. 对称二叉树

对称二叉树题目题解2021.12.5递归2021.12.5 迭代题目题解递归,不断比较左子树的左节点和右子树的右节点迭代,这里可以用队列或者栈实现!2021.12.5递归class Solution {public: bool compare(TreeNode* left, TreeNode* right) { // 首先排除空节点的情况 if (left == NULL && right != NULL) return false;

2021-12-05 17:35:04 676

原创 Leetcode HOT100——94.二叉树的中序遍历

二叉树的中序遍历题目题解2021.12.4递归迭代Morris中序遍历题目题解递归迭代Morris遍历(这个方法我也是第一次了解到)Morris 遍历算法是另一种遍历二叉树的方法,它能将非递归的中序遍历空间复杂度降为 O(1)O(1)。2021.12.4递归第一次看到这个题目,想起以前做过,那时候常规的做法就是递归,先遍历左子树,然后根节点,最后右子树。递归算法都是“一看就会,一写就废”,这句说我了!/*题目要求返回数组,先创建一个数组,然后最后返回数组*/class Solutio

2021-12-04 22:00:50 404

原创 Leetcode HOT100—70.爬楼梯问题

爬楼梯问题题目题解2021.12.2 简单动规2021.12.1优化dp题目题解这个题目也是属于动态规划的题目,这一题的递归公式比较容易退出就是a[i]=a[i-1]+a[i-2],因此第4层就有5个方法,第5层就有8个方法。2021.12.2 简单动规时间复杂度:O(n)空间复杂度:O(n)// 版本一class Solution {public: int climbStairs(int n) { if (n <= 1) return n; // 因为下面

2021-12-03 11:23:32 231

原创 Leetcode HOT100——53. 最大子数组和

最大子数组和题目题解2021.12.2 动态规划2021.12.2 贪心这题和最大子列和之类的题目非常类似,我记得我当时在刷浙大pta的时候还做过,那时候使用暴力去做的,一个for里面加个比较,但是不知道为什么,到了leetcode就测试不通过了。题目题解贪心(一个for,里面再比较。注意,里面的初始值要设为最小INT_MAX,不能是0)动态2021.12.2 动态规划class Solution {public: int maxSubArray(vector<int>

2021-12-03 11:13:15 316

原创 Leetcode HOT100——21.合并两个有序链表

合并两个有序链表题目解法2021.12.1递归迭代题目解法2021.12.1递归class Solution {public: ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) { if(list1 == nullptr) return list2; if(list2 == nullptr) return list1; if(list1->val <= list2-

2021-12-01 21:15:26 372

原创 Leetcode HOT100——20.有效的括号

有效的括号题目解法2020.12.1 题解(纯栈,没有map)unorder_map解法增加字符长度奇偶判断题目解法栈+hashmap2020.12.1 题解(纯栈,没有map)class Solution {public: bool isValid(string s) { stack<int> st; for (int i = 0; i < s.size(); i++) { if (s[i] == '(') s

2021-12-01 19:49:08 139

原创 Leetcode HOT100——1.两数之和

两数之和题目解法2020.11.30 哈希看题解做出2020.11.30 暴力循环重新回归leetcode,之前的账号没有找不回来,而且自己也懒不想刷题,毕业的事情又烦着。。。题目解法解法主要是:暴力双循环哈希指针2020.11.30 哈希看题解做出class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map&lt

2021-11-30 21:03:13 291

原创 清华大学操作系统lab——(吐槽)

关于做个这个lab,我真的抑郁了。配环境配了两天,从百度网盘下那个moocos的虚拟镜像文件就下了一个上午。然后一直弄ubuntu里面的那个eclipse里面打开工程的事情,结果发现要git clone最新的ucore文档里面才有.project文件。然后好不容易曲线救国把最新的ucore文件下载后,结果发现还是打不开。然后就想算了,反正eclipse只是拿来调试和查看代码的,用按照别人的博客用gdb也行。但是!看了几下发现挺难受的,因为不懂汇编,只能看别人的讲解,但是讲解也不全面。唉,两天啥都没干,真的郁

2021-11-26 20:32:24 432 1

原创 操作系统入门—参考清华大学的课程

暑期结束到现在,回归学习(之前被一些事情缠的不可脱身!)Os入门本章最后我会说明我为什么选择这门课作为os的入门。清华大学 操作系统原理 第二章:操作系统基础操作2.1操作系统的启动基本概念知识2.2中断/异常和系统调用第三章:连续式内存分配3.1 计算机体系结构及内存分层体系3.2 地址空间与地址生成3.3 连续内存分配:内存碎片与分区的动态分配3.4 连续内存分配:压缩式与交换式碎片整理第四章:非连续式内存分配4.1 非连续内存分配:分段4.1.1分段Segmentation:更好的分离和共享4.

2021-11-07 16:36:39 3386 2

原创 在C++学习过程中关于cin的问题汇总

关于C++的cin的错误输入的问题以及解决办法常用!!cin标准输入流的错误处理c++之cin/cin.get/cin.getline()详解

2021-10-26 16:08:11 155

原创 LC-剑指 Offer 24. 反转链表

思路看了下题解,有递归和迭代两种方法,但是对于递归来说,空间复杂度都大幅增加到O(N)。所以我这里用更加好理解的迭代。做这题先把链表画出来。再去写代码会清楚点。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solutio.

2021-08-26 12:11:45 185

原创 LC-剑指 Offer 06. 从尾到头打印链表

思路这道题题解有很多解法,第一次看下去,就感觉用栈,比较容易理解,把head的值压入栈,再把栈弹出。但是要用数组方式返回,这里题解是使用容器vector的方式。这点我没想到,还是对C++的语言不熟悉吧原题地址/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {}.

2021-08-26 11:57:08 159

原创 C++核心编程学习

开始C++的学习,边学边刷leetcode,用好stl

2021-08-26 10:06:36 402

原创 图相关知识复习

图定义储存结构领接矩阵领接表十字链表 (不常用)邻接多重表(不常用)边集数组(不常用)图的遍历深度优先搜索dfs广度优先搜索bfs最小生成树prim算法kruskal算法最短路径Dijkstra算法(迪杰斯特拉)Floyd算法(弗洛伊德)拓补排序AOV关键路径AOE定义由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其G表示一个图,V是图G中顶点的集合,E是图G中边的集合。图、无向图、有向图、完全图(任意两个顶点之间都存在边)度、入度、出度权 图的边或弧相关的数叫作权(We

2021-08-22 17:29:09 245

原创 Kruskal算法

#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#define VertexMax 20 //最大顶点数为20typedef char VertexType;typedef struct{ VertexType begin; VertexType end; int weight;}Edge;//边集数组edge[]的单元 typedef struct{ Vertex

2021-08-22 17:22:12 172

原创 Prim算法

#define _CRT_SECURE_NO_WARNINGS/* prim朴素实现 reference: http://www.slyar.com/blog/prim-simplicity-c.html//*/#define MAX 100#define MAXCOST 0x7fffffffint graph[MAX][MAX];int mstgraph[MAX][MAX];int prim(int graph[][MAX], int n){ int lowcost[MAX];

2021-08-22 17:20:44 102

原创 排序复习总结

这周牙疼完全不想学习,然后自己又整天摸鱼看b站,感觉没有动力了。果然一个人挺难坚持的。唉,有时候水群看看到别人拿到oc,由衷地替别人感到开心。但是自己太菜了,又不爱学习。 大家有智齿早点去拔!这个星期就没睡过好觉冒泡排序插入排序 !!重点希尔排序堆排序!!重点快排!!重点基数排序表排序坚持记录就是为了如果后面忘了,就可以回来看,但是没有必要为了记录而记录。接下来还有图,树两种数据结构整理。在实现数据结构时,要不停地建结构体,确实很繁琐,所以想看看用C++去偷懒。C++感觉学起来深似海,但

2021-08-21 15:32:07 100 1

原创 基数排序用例

基数排序原理主位优先次位优先代码主位优先代码次位位优先代码总结原理桶排序的推广,所谓的桶排序是将可能的取值作为桶,然后将数据放到桶里,最后将桶里的内容做个简单的收集就变成有序的数列了。基数排序继承这一思想,分为主位优先和次位优先。以扑克牌为例子!主位优先先按花色建立桶,然后再按面值建立桶。分治思想次位优先先以最次位关键字建立桶,按面值建立13个桶,分别有规则放进去,最后所有牌收集,再按花色建桶,然后再收集。最后完美序列代码主位优先代码#include<stdio.h>#inc

2021-08-20 23:08:44 136

原创 表排序用例

表排序思路代码总结表排序说白了,就是当待排序的元素是一个个庞大的结构体等其他数据结构时,就新创建个数组用来存放排序后的排序好的新的位置,但是在原来的待排序的数组中不做交换等改变。当table[i]=i,就代表书在本来的位置上,因此每次把key放回原来的位置时,就把table[i]=i。当检测到table[i]=i,意味着这个环结束排序了思路新建一个表去记录排序后的位置,并且记得根据新建表去更改原表代码//表排序.c#include<stdio.h>#include<st

2021-08-20 22:53:14 248

原创 快速排序用例

快速排序思路代码总结思路选主元,什么是主元,就是在待排序的元素中找一个元素,可以把元素分为两边,一边比主元大,一边比主元小,然后递归排序地去解决两边的元素。这个元素就叫做主元,简单粗暴的理解。随机利用rand函数随机选择的方法就不说了。中位数法,把最左边,最中间,最右边的三个数的中间值作为主元代码//qsort-1-2.c#include<stdlib.h>#include<stdio.h>#include<time.h>#define MAXN 100

2021-08-20 22:21:04 550

原创 归并排序用例

归并排序思路递归代码非递归代码总结思路一眼看懂怎么排序的把1.首先申请额外的空间用于放置归并的结果,接着设置两个指针分别指向两个已排序子序列的第一个位置,2.然后比较两个指针指向的元素,将较小的元素放置到已申请的额外空间内,并将当前位置向后移动一格,3.重复以上过程,直到某一个子序列的指针指向该序列的结尾,这时候将另一个指针所指向的剩余元素全部放置到额外空间内,归并操作结束。递归代码//归并排序#include<stdio.h>#include<stdlib.h>

2021-08-19 22:56:33 171

原创 堆排序用例

堆排序核心概念代码思路代码核心概念利用最大堆(或者最小堆)输出堆顶元素,即最大值(或最小值),将剩余元素重新生成最大堆(或者最小堆),继续输出堆顶元素,重复此过程,直到全部元素都已输出,得到的输出元素序列极为有序序列。代码思路这里的堆排,实际就像最大堆的删除一样先建堆,从最后一个父节点开始,把左右子节点比较,取大值,记得把小值给回曾经的父节点删除堆,从根节点开始,与最后一个节点交换,并不断调整调整代码//堆排序//选择排序#include<stdio.h>typedef i

2021-08-19 21:35:54 206

原创 希尔排序用例

希尔排序希尔排序简单希尔排序Sedgewick希尔希尔排序每次排序都会保持上一次排序的有序性但是,有特殊情况排序不起作用了,所以发明了很多复杂的希尔排序因此希尔排序不稳定简单希尔排序//希尔排序#include<stdio.h>typedef int ElementType;void Print_Array(ElementType A[],int N){ printf("\n"); for(int i=0;i<N;i++) printf("%d ",A[i

2021-08-19 17:54:48 131

原创 插入排序(用例)

插入排序思路代码总结思路1.把插入值放到最后,然后和原来数组前一个比较。if a[i-1]>tmp移出空位a[i]=a[i-1];前面的值往后面放2.考虑下tmp,从前往后开始比较,所以循环肯定是for(i=1;i<n;i++)。从1开始是因为,后面是a[i-1]和tmp比较3.最后,把tmp插入到i的位置,a[i]=tmp;代码#include<stdio.h>typedef int ElementType;void Print_Array(ElementTyp

2021-08-19 16:47:01 198

原创 冒泡排序用例

冒泡排序思路代码结论思路冒泡排序1.每次排序交换总能把当前未排序元素的最大值放到未排序元素元素的末尾,这样就变成已排序的数组2.每次排好已排序好的数组以后,就不用去交换代码//冒泡#include<stdio.h>typedef int ElementType;void printf_array(int a[],int N){ printf("\n"); for (int i = 0; i < N; i++) printf("%d ", a[i]);}

2021-08-19 15:35:51 564

原创 散列查找-复习

散列表相关知识点复习散列查找散列函数解决冲突KMP散列查找散列查找就像用字典一样,以最快的方式去定位到需要寻找的位置(通过关键字定位),定位的方式就是散列函数,如果定位有冲突,那么就用解决冲突的方法去解决!这里不需要过于关心这个散列函数如何快速搜索到需要的关键词?如果关键词不方便比较怎么办?散列查找法的两项基本工作:计算位置:构造散列函数确定关键词存储位置;解决冲突:应用某种策略解决多个关键词位置相同的问题查找的本质: 已知对象找位置。直接“算出”对象位置:散列时间复杂度几乎是常量:O(

2021-08-18 09:57:19 284

原创 散列表(分离链接法)用例

1.创建数组和链表节点,并且初始化2.查找,当p不为空,并且值不相等,继续3.插入,找不到就新建并用hash去求出位置,//分离链接方法.c#include<stdio.h>#include<stdlib.h>#include<string.h>#include<stdbool.h>#include<math.h>#define MAXTABLESIZE 100000#define KEYLENGTH 15

2021-08-18 09:55:22 264

原创 散列表(平方探测法)用例

参考代码链接1.创建并初始化结构数组2.查找找位置–看下位置的值是否相等-增量-返回空闲位置3.插入先找是否存在,不存在就赋值,记得改状态//开放地址法#include<stdio.h>#include<stdlib.h>#include<string.h>#include<stdbool.h>#include<math.h>#define MAXTABLESIZE 100000 /* 允许开辟的最大散列表长度 */typ

2021-08-18 09:16:01 955

原创 LC-剑指 Offer 30. 包含min函数的栈

剑指 Offer 30. 包含min函数的栈说明理解题意,min要返回栈的最小元素,但是时间复杂度要O(1),代表着遍历栈并且比较大小的方法就不行了。然后看下示例。思路这里看题解和参考提示,可以新建一个递减的min_stack去存放stack的最小值,这样min_stack的top的值就是stack的最小值。/*1.新建stack,min_stack2.push ()stack.pushif(value<=min_stack.top)min_stack.push3.pop这里毫

2021-08-17 20:33:57 146

原创 LC-剑指offer 09-用两个栈实现队列

**剑指 Offer 09. 用两个栈实现队列**说明这题一看题目,感觉就是用两个栈去模拟队列先进先出的特点。stack1压入全部元素,再把元素以弹出的方式压入stack2,但是这里要注意,先压入stack2,再pop stack1的元素个人感觉要这样。看下示例,觉得就看不懂了。最后就看评论解答了。apppendTail是实现压入栈的功能(相当于在队列尾部插入),deletHead是实现删除队列头(此时队列的头就是stack2的栈顶)所以就是把stack2的TOP弹出就行了。示例说明输出那里对

2021-08-17 18:05:04 136

matlab车牌识别.rar

matlab车牌识别项目,都是一些网上的资源整合的

2021-08-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除