layout: post
title: xtx暑假第二三周日志
categories: 日志
tags:
- 日志
- 2021暑期日志
BGImage: 'https://github.xutongxin.me/https://raw.githubusercontent.com/xutongxin1/PictureBed/master/img0/20210904201804.png'
jekyll-theme-WuK:
musicid: '41631040'
这是接下来23(4)周的日志了,原因就是电赛嘛,电赛的笔记是写在另一个markdown里的。所以这个日志就是记录除了电赛外所做的努力了,不过确实很少就是了。
线程池
7.19
继续整理零件准备焊接
7.20
因病休息
7.21
焊飞机的烧录线,搭架子
7.22
测试飞机的自动模式和位置锁定模式
7.23
超声波安装,调试,改写uart7驱动
7.24
向上光流测试(炸鸡现场)
7.25
休息
7.26 27
向上光流测试(炸鸡现场x2)x3
7.28
外部无遥控启动
至此全准备工作完成
然后由于的原因
弃赛
在接下来一周不定时间处理技术问题
7.29~8.3
模板都和泛型相关
模板函数
template <typename T> inline T const& Max (T const& a, T const& b) { return a < b ? b:a; }
const&
inline https://www.runoob.com/w3cnote/cpp-inline-usage.html减少重复对简单函数调用所带来的堆栈空间消耗
模板类
template <class T>
class Stack {
private:
vector<T> elems; // 元素
public:
void push(T const&); // 入栈
void pop(); // 出栈
T top() const; // 返回栈顶元素
bool empty() const{ // 如果为空则返回真。
return elems.empty();
}
};
异常处理,与python类似
try
{
// 保护代码
}catch( ExceptionName e1 )
{
// catch 块
}catch( ExceptionName e2 )
{
// catch 块
}catch( ExceptionName eN )
{
// catch 块
}
clion和leetcode配置
https://www.jianshu.com/p/04343d6be97e
最终模板方案:
${question.content}
\#include <iostream>
\#include <vector>
using namespace std;
${question.code}
int main()
{
Solution s;
cout<<"Hello LeetCode"<<endl;
}
Leetcode第一题
证明30%人和我一样用了低级的时间复杂度高的算法,70%人用了更快但空间开销更大的算法,还有4%的在摸鱼()
8.4
构造函数种类
https://blog.csdn.net/zxc024000/article/details/51153743
public:
Student(int n,int a):num(n),age(a){} //构造函数 传入参数 : 赋值参数 函数内容
private:
int num;
int age;
nullptr
空指针常量值,如这样用
struct ListNode {
int val;
ListNode *next;
ListNode() : val(0), next(nullptr) {}
ListNode(int x) : val(x), next(nullptr) {}
ListNode(int x, ListNode *next) : val(x), next(next) {}
};
链表创建
光看不用问题大得很,前插法
#include <iostream>
struct ListNode {
int val;
ListNode *next;
ListNode() : val(0), next(nullptr) {}
ListNode(int x) : val(x), next(nullptr) {}
ListNode(int x, ListNode *next) : val(x), next(next) {}
};
int main() {
std::cout << "Hello, World!" << std::endl;
int v1[3]={1,2,3};
int v2[3]={1,2,3};
ListNode *l1=new ListNode();
ListNode *l2=new ListNode();
l1->next=NULL;
for(int i=0;i<3;i++)
{
ListNode *p=new ListNode(v1[i]);
p->next=l1->next;//挤到后面去,对于第一次,将p作为末节点
l1->next=p;
}
return 0;
}
这是新建一个元素前插入,但是要插到最后面嘛
#include <iostream>
struct ListNode {
int val;
ListNode *next;
ListNode() : val(0), next(nullptr) {}
ListNode(int x) : val(x), next(nullptr) {}
ListNode(int x, ListNode *next) : val(x), next(next) {}
};
int main() {
std::cout << "Hello, World!" << std::endl;
int v1[3]={1,2,3};
int v2[3]={1,2,3};
ListNode *l1=new ListNode();
ListNode *l2=new ListNode();
ListNode *last=l1;//上一个被插入的元素
l1->next=NULL;
for(int i=0;i<3;i++)
{
ListNode *p=new ListNode(v1[i]);
last->next=p;//指向新的元素
last=p;//新的元素作为上个被插入的元素
}
return 0;
}
也可以这样写
for(int i=0;i<3;i++)
{
p->next=new ListNode(0);
p=p->next;
}
8.5
对链表的next,到底是赋值地址还是赋值指针非常重要
(注:本节笔记含有自行理解且不完全确认理解是否透彻而正确的内容)
struct ListNode {
int val;
ListNode *next;
ListNode() : val(0), next(nullptr) {}
ListNode(int x) : val(x), next(nullptr) {}
ListNode(int x, ListNode *next) : val(x), next(next) {}
};
int v1[3]={1,2,3};
int v2[3]={1,2,3};
Solution s;
ListNode l1,l2,p;
l1=*new ListNode;
l2=*new ListNode;
l1.next=NULL;
for(int i=0;i<sizeof(v1);i++)
{
p=*new ListNode(v1[i]);
p.next=l1.next;//挤到后面去,对于第一次,将p作为末节点
l1.next=&p;
}
得到的结果也是很惊人,清一色的重复引用
关键就在
p=*new ListNode(v1[i]);
和
l1.next=&p;
如果按照书里的写法
可以看到书上是把指针赋值给了next,而我是把变量的地址赋值给了next
而且书上在new空间时是返回了一个指针而不是变量
所以我每一次把地址不断赋值给p的next,而p只是变量,p的地址从未改变,所以就闭环了
因此有句话特别重要
typedef struct ListNode *List;
但不行,这样转换后构造函数就用不了了,即便是这样写
ListNode* l1,*l2,*p;
*l1=new ListNode;
*l2=new ListNode;
也不行,因为题目中包含了构造函数,而我先声明在分配空间会报错
ListNode* l1,*l2,*p;
*l1=*new ListNode;
*l2=*new ListNode;
这样也不行,在执行阶段会出分配内存错误
所以应该这样写
ListNode *l2=new ListNode();
创建时分配空间顺带做构造函数
sizeof()
获取的是空间大小不是元素数量
对于int需要的话要
int a[10];
int b=sizeof(a)/4 //b=10
或者
int a[10];
int *pbeg = begin(arr);
int *pend = end(arr);
auto length = pend - pbeg;*//数组元素个数
8.6~8.8
动态规划两个要点:
空间换时间来节省重复的运算
状态转移方程
后者的通常格式为:max(前一状态+现状态,现状态)
可参见的题目:
最大子序列:
https://leetcode-cn.com/problems/maximum-subarray
背包问题:https://www.bilibili.com/video/BV1XD4y1S7nv
![img](file:///C:\Users\xtx\Documents\Tencent Files\2656823393\Image\Group2\3X\0U\3X0U`405_CUKQK[WHQ${M$E.jpg)
标签:ListNode,val,23,Holiday23,next,int,2021,l1,new From: https://www.cnblogs.com/xutongxin/p/17709761.html