- 博客(112)
- 收藏
- 关注
原创 C++ 拷贝构造
优化:C++11/17 的 返回值优化(RVO) 和 移动语义 会在某些情况下避免调用拷贝构造函数。函数的参数 obj 是按值传递的,因此会创建 obj1 的副本,调用拷贝构造函数。push_back 需要将 obj 复制到容器中,因此会调用拷贝构造函数。编译器会优化返回值,将对象直接构造到目标位置,避免调用拷贝构造函数。函数返回局部对象时,会调用拷贝构造函数将 obj 返回给调用者。如果对象较大,尽量使用 按引用传递 或 按引用返回 来避免拷贝。移动构造函数可以避免拷贝,直接转移资源,从而提高性能。
2025-01-28 19:41:41
337
原创 深拷贝、浅拷贝、移动语义
浅拷贝只复制对象中的指针或引用,而不复制它们所指向的实际资源。新对象和原对象共享同一块资源。移动语义会将资源从一个对象“转移”到另一个对象,而不会创建或复制新的资源。原对象的资源被“搬走”,进入“有效但未定义状态”。拷贝方式深拷贝浅拷贝移动语义实现复杂度较高,需要手动复制资源简单,默认行为需要手动实现移动构造和赋值效率慢,涉及内存分配和复制快,只复制指针非常快,只转移资源所有权资源独立性独立的资源副本共享资源资源被转移,独占适用场景资源独立且需频繁复制快速拷贝,无需独立资源。
2025-01-28 19:24:38
551
原创 小米笔试题——01背包问题变种
这段代码的主要思路是使用动态规划来构建一个二维数组 dp,其中 dp[i][j] 表示前 i 个产品是否可以组合出金额 j。通过遍历产品列表和可能的目标金额,不断更新 dp 数组中的值,最终返回 dp[N][M] 来判断是否可以组合出目标金额 M。如果 dp[N][M] 为 true,则表示可以组合出目标金额,否则表示无法组合出目标金额。
2023-09-22 21:07:24
536
原创 one way in,two way out 和 two way in, one way out
思路:用一个双端队列模拟,依次插入,若队列两头有可删除的元素,则删除。最后检查一下删除序列有没有遍历完。题目意思:有个队列只能从一头插入,可以从两头删除。给你插入序列,让你判断删除序列是否正确。7-2 One Way In, Two Ways Out (25 分)
2023-09-21 17:18:46
414
原创 5. 最长回文子串
1.dp[i][j] 表示从索引 i 到索引 j 的子串是否是回文串。2.如果s[i][j]两个字符相等,并且子串 (i+1, j-1) 也是回文串,则当前子串 (i, j) 也是回文串,即 dp[i][j] = true。
2023-08-17 20:26:46
141
原创 200. 岛屿数量
如果格子是陆地(‘1’),则将其标记为已访问(‘0’),并从当前位置开始进行深度优先搜索,将与当前格子相邻的陆地都标记为已访问。注意和黑色瓷砖那题区分,不能套那道题的模板。每次发现一个陆地,都增加岛屿数量的计数器。
2023-08-17 20:20:08
201
原创 双端冒泡排序
总体上来说,双端冒泡排序减少了比较和交换的次数,从而相对于传统冒泡排序有更好的性能。而双端冒泡排序则从序列的两端同时开始,同时将最大和最小的元素冒泡到序列的两端,然后再缩小序列的范围,继续从两端开始冒泡。这样在一次遍历中可以确定两个边界的正确位置,从而减少了排序的遍历次数。传统冒泡排序从一端开始,每次将最大(或最小)的元素冒泡到序列的一端,然后再从剩余的元素中继续冒泡。双端冒泡排序是对传统冒泡排序的改进,其主要改进在于同时从两端开始排序,相对于传统冒泡排序每次只从一端开始排序,这样可以减少排序的遍历次数。
2023-08-02 17:34:16
409
原创 黄油运输的迷思
他突发奇想,要这一切都是标准化包装物件,那么其尺寸不仅节约控件、提升干线物流运输效率,同时也让简化车辆的动力学、运动学建模,帮助自动驾驶算法更精准、灵敏地操控车辆(但愿如此)。如果最后一个箱子的长度为 1 米,那么前面的 i-1 米长度的队列可以有 dp[i-1] 种不同的排列方式。如果最后一个箱子的长度为 2 米,那么前面的 i-2 米长度的队列可以有 dp[i-2] 种不同的排列方式。如果现有两种包装物品的包装运输箱,尺寸分别是长宽 1米×1米 和 1米×2米。对于长度为 i 米的队列,我们可以。
2023-07-18 14:06:55
233
原创 剑指 Offer 29. 顺时针打印矩阵
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]当向上遍历时,其实是从左到右遍历列。当向右遍历时,其实是从上到下遍历行。输出:[1,2,3,4,8,12,11,10,9,5,6,7]
2023-07-18 11:19:33
938
原创 PAT 1080. Graduate Admission (30)
排名索引的计算:遍历排序后的申请者列表,如果当前申请者的分数和排名与上一个申请者相同,则将当前申请者的排名索引设为与上一个申请者相同;首先,根据申请者的总分和 GE 分数对申请者列表进行排序,将总分高的申请者排在前面,如果总分相同,则将 GE 分数高的申请者排在前面。如果学校容量已满,但最后一个被录取的学生与当前申请者具有相同的排名索引,也将该申请者加入学校的录取学生列表,并跳出内层循环。该算法通过排序和遍历的方式,按照一定的优先级和条件将申请者分配到学校中,以实现合理的录取结果。
2023-06-15 17:11:34
410
原创 Public Bike Management
首先用Dijkstra算法求出起点到其他所有站点的最短路径和距离。然后使用深度优先搜索遍历所有最短路径,并计算在该路径下的send和collect数量,最后找到一组最优的send和collect,输出方案。注意:1.每次只走一趟,过程中需要send和collect,不是来回走两趟。
2023-04-16 17:07:39
117
原创 模仿学习对比强化学习
模仿学习介绍模仿学习是将专家经验作为样本进行强监督学习的一种方法。模仿学习对比强化学系模仿学习优点:1.简单、稳定的监督学习过程缺点:1.需要提供榜样行为数据2.需要处理多解型行为(例如 绕过障碍物,可以从左边或者右边,但是专家数据不一定覆盖所有行为,可以用多元高斯分布去等方法去处理)3.不能超越人类水平强化学习优点:1.可以超越人类水平缺点:1.需要设置奖励函数2.必须解决策略探索性问题3.训练可能不收敛、不稳定结合模仿学习和强化学习:Pretrain&Finetune
2022-05-12 15:34:29
1663
原创 pycharm连接AutoDL
1.首先要下一个专业版的pycharm并且要激活:【pycharm2021.3专业版安装激活教程,逐步讲解,巨详细】2.配置远程环境AutoDL官网帮助文档如果代码无法上传或者无法运行远程的代码,检查映射地址是否正确。同步代码更改可以这样,第二张图选择全部同步,然后刷新打开远程终端打开远程文件目录...
2022-05-01 22:37:04
2042
原创 matplot画轨迹图
绘图效果如下所示:matplot介绍:1.plt.plot() 画图函数plt.plot(x,y,label, ls, linewidth, color,marker)参数名含义x横坐标集合y纵坐标集合label添加曲线标签,后使用plt.legend( )创建图例。lslinestyle,可以定义为’-', ‘–’, ‘-.’, ‘:’, ‘None’, ’ ', ‘’, ‘solid’, ‘dashed’, ‘dashdot’, ‘dotted’
2022-04-30 21:50:40
5664
1
转载 DDPG算法与输出边界值问题
【强化学习】DDPG 算法实现案例DDPG或TD3算法训练时总是输出边界值问题记录强化学习调参技巧一: DDPG算法训练动作选择边界值_分析解决sigmoid函数原理及饱和后梯度消失的问题输出边界值最基本的解决办法有批标准化(model里面加入BN层),输入归一化。实在不行换算法。如何选择深度强化学习算法?MuZero/SAC/PPO/TD3/DDPG/DQN/等(2021-04)...
2022-04-08 18:52:33
1312
转载 pytorch 批标准化
https://blog.youkuaiyun.com/qq_37388085/article/details/104777856?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164734212616780265479995%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164734212616780265479995&am
2022-03-28 20:21:21
258
转载 Python-copy()与deepcopy()区别
https://blog.youkuaiyun.com/qq_32907349/article/details/52190796深拷贝,就是复制出独立的一份,拥有独立的内存地址。浅拷贝,就相当于引用,共用一片内存地址。原变量改变,拷贝的也会改变。 cop1 = copy.copy(origin) cop2 = copy.deepcopy(origin)...
2022-03-16 16:30:50
117
原创 pytroch取张量数据
print('1111',loss)print('2222',loss.data)#tensor且GPUprint('3333',loss.cpu())print('4444',loss.cpu().data)#tensor且CPU# print('5555',loss.cpu().data[0])#报错 IndexError: invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Pyth
2022-03-16 16:23:52
2181
转载 数据标准化
https://www.cnblogs.com/pejsidney/p/8031250.htmlhttps://blog.youkuaiyun.com/weixin_38706928/article/details/80329563
2022-03-06 19:28:24
104
原创 Gym跑CarRacing环境报Box2d的错误
之前想用CarRacing做强化学习训练,报了Box2的错误,pip install box2d又一堆Error,这是因为我用的系统是windows的不能直接pip install。具体方法如下:1.先去安装swig2.然后下载wheel参考文章1参考文章2
2022-02-16 22:58:18
1583
1
原创 机器学习损失函数
最小二乘法期望和实际值的方差作为损失函数,1/2是为了方便求导。实际值又是通过权重W和偏置项b来确定,所以我们可以对它训练。极大似然估计我们以抛硬币为例,左边的是我们假设的概率模型,右边是真实世界的实验结果。c1,c2,c3…c10是该情况发生的概率,西塔是给定的概率模型。我们计算上述三种情况得到的概率,如下图所示我们发现第二种模型,概率最大。这些我们假设模型计算的结果叫做似然值,而最大的似然值就是最大似然值。我们就可以认为最大似然值的概率模型越能描述现实世界。如何训练呢?其中概率依赖于W和
2022-01-15 16:46:36
923
转载 线性模型和非线性模型
区别:看公式里面参数,一个变量x只被一个参数w影响就是线性,否则是非线性。https://www.cnblogs.com/toone/p/8574294.html
2022-01-11 21:14:22
282
转载 准确率和loss的关系
https://blog.youkuaiyun.com/u014421797/article/details/104689384?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%
2022-01-11 21:08:49
1189
转载 回归任务和分类任务的区别
https://blog.youkuaiyun.com/qq_24224067/article/details/103634608
2022-01-11 21:00:34
1887
原创 Pytorch 的 torch.utils.data.DataLoader 参数详解
DataLoader是PyTorch中的一种数据类型,它定义了如何读取数据方式。1、dataset:(数据类型 dataset)输入的数据类型。看名字感觉就像是数据库,C#里面也有dataset类,理论上应该还有下一级的datatable。这应当是原始数据的输入。PyTorch内也有这种数据结构。这里先不管,估计和C#的类似,这里只需要知道是输入数据类型是dataset就可以了。2、batch_size:(数据类型 int)每次输入数据的行数,默认为1。PyTorch训练模型时调用数据不是一行一行进
2022-01-11 20:51:22
1938
原创 ubantu关机、重启命令
https://blog.youkuaiyun.com/blacklaw0/article/details/8836295
2022-01-04 18:32:57
335
原创 Ubuntu忘记开机密码
开机长按shift键盘,然后就会进入引导菜单。选择Advanced options for ubuntu。recovery mode的菜单,按回车即可,直接选择root 来弹出root shell。输入命令mount -o rw,remount /passwd xxx如果不写用户名,改的是root密码。...
2022-01-04 18:21:51
472
原创 win10安装gym时遇到的问题
进入conda环境,安装gympip install gympip install gym[atari]pip install pyglet1. no atribute “xxxx”的错误是因为文件命名问题,文件名不可以和import的包名重复,比如gym.py 和 import gym。文件名与包同名,包会被文件名屏蔽,导致无法导入。python中导入单个文件和导入包是同样import。2.OSError: [WinError 126] 找不到指定的模块 (ale_c.dll)文件夹里
2022-01-03 21:30:29
429
原创 电梯调度算法
扫描算法通常称为电梯调度算法,但是会出现饿死现象。循环扫描算法解决了饿死现象,但是效率会低一些。先来先服务,最无脑也是效率最低的。最短寻道,效率高,但是也会饿死。
2021-12-22 17:27:16
2490
原创 如何制作ubantu启动盘
1.下载iso镜像2.用ultraISO刻录进U盘3.设置U盘启动,然后一步一步操作。注:不能用大白菜,通过PE系统安装ubantu,会报iso无法识别的问题。
2021-12-11 09:56:01
268
原创 youtube下载视屏和字幕办法
https://www.apowersoft.cn/online-video-downloader下载在线视屏https://downsub.com/下载字幕知乎方法https://zhuanlan.zhihu.com/p/349506890字幕修改,把SRT文件用记事本打开,然后修改,保存,最后用格式工厂输出
2021-10-14 21:23:36
1747
原创 ROS踩坑日记 NO.1
踩坑目录1.ros里面引用自定义头文件2.ros::Time和ros::Walltime3.时间戳转化为北京时间4.可变参数,重构print5.引用头文件编译不过 https://blog.youkuaiyun.com/qq_16775293/article/details/80597763找了一年的错发现是函数名多打了一个P6.同一个功能包,头文件和cpp分开写,要做成库然后链接https://blog.youkuaiyun.com/qq_32761549/article/details/1045789007
2021-10-09 16:01:10
1827
1
原创 Ubantu20.04安装Ros
1.切换软件源如果直接用默认的源,可能安装的速度会特别慢。所以可以选择国内的清华源或者阿里源头。以下我选择阿里源为例:2.安装ROS进入http://wiki.ros.org/,依次选择安装、系统版本,然后复制命令行,依次进行安装。强烈建议跟着教程安装:https://www.bilibili.com/video/BV1Bf4y1a7z1?from=search&seid=1347456241581762682&spm_id_from=333.337.0.0遇到的问题
2021-09-12 15:37:34
486
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人