- 博客(182)
- 资源 (3)
- 收藏
- 关注
原创 Markdown 写博客可能会用到的组件 (持续更新)
目录添加目录添加矩阵添加LaTeX 数学公式添加目录演示:四个"#"代表是四级标题,只需要使用这种形式的标题即可@[TOC](目录)#### 快速幂运算添加矩阵$$ \left[ \begin{matrix} A^k\\ S_k \end{matrix}\right] =\left[ \begin{matrix} A &...
2019-08-30 15:58:26 206
原创 C++刷题中 那些奇奇怪怪 可可爱爱的函数
文章目录字符串字符串变长substr的使用to_string()函数数组数组前后补零数组初始化字符串字符串变长适用于原地修改字符串的情形,多结合双指针从后往前进行移动和修改,进而降低空间复杂度s.resize(s.size()+extrasize);可参考题目:剑指offer 05. 替换空格举一反三:填充类题目,都可以考虑原地扩充大小然后双指针从后往前操作。substr的使用s.substr(startidx, length);to_string()函数将数字转换为字符串in
2022-02-20 10:00:15 976
原创 LeetCode 单调栈 阶段性小结 个人向专题通关计划
单调栈单调栈的应用场景单调栈的含义从一道典型题出发 LeetCode 739 每日温度LeetCode 496 下一个更大元素 ILeetCode 503 下一个更大元素 II进阶 向hard难度冲击LeetCode 42 接雨水LeetCode 84 柱状图中最大的矩形单调栈的题目需要注意的有:单调栈中元素的大小顺序、新来一个元素时,需要考虑其与栈头元素相对大小的三种情况、较为复杂的题目中,通常要考虑三个元素:栈头元素、栈中的第二个元素(左边第一个较小/较大的位置或值)、新来元素(右边第一个较小/较大的
2022-01-27 20:49:10 417
原创 LeetCode 二叉树遍历 递归 & 迭代 栈+空指针
@[TOC]二叉树遍历二叉树的递归遍历二叉树的前中后遍历其实就是中间节点的遍历顺序。递归三要素:确定递归函数的参数与返回值//无需返回值//需要知道当前节点,以及一个用于保存遍历结果的vector数组void traversal(TreeNode* cur, vector<int>& vec)确定终止条件if (cur == NULL) return;确定单层递归的处理逻辑//以前序遍历为例vec.push_back(cur->val);
2022-01-21 16:34:13 571
原创 LeetCode 102 二叉树的层次遍历 层次遍历模板题目 队列bfs & 递归dfs
题目链接解法一:BFS模板题,借助于队列AC代码:class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { // bfs queue<TreeNode*> que; vector<vector<int>> res; if(root!=nullptr) que.push(root)
2022-01-19 16:16:15 259
原创 LeetCode 回溯法 阶段性小结 个人向专题通关计划
回溯回溯法应用场景回溯法代码模板回溯:组合问题LeetCode77 组合LeetCode40 组合总和 II回溯:切割问题LeetCode131 分割回文串LeetCode93 复原IP地址回溯法应用场景回溯法又叫回溯搜索法,是一种搜索的方式,类似于深度搜索。回溯搜索的本质是穷举搜索,所以并不是一种高效的算法,可以考虑一些剪枝优化策略。回溯法可以解决的问题种类一般包括以下几种:组合问题:N个数里面按照某种要求找出满足条件的k个数的集合切割问题:一个字符串按照某种要求可以有多少种切割方式子集问题
2021-12-25 23:34:25 1014
原创 LeetCode 快慢指针 双指针法阶段性总结 个人向
双指针法 思维方式链表 双指针法 快慢指针真题 LeetCode141 环形链表真题 LeetCode142 环形链表II. 环有了,那入口节点呢?推荐阅读数组LeetCode 15 三数之和LeetCode 16 最接近的三数之和LeetCode 18 四数之和小总结双指针法通常被用于简化多层循环遍历的场景,降低时间复杂度(通常降低一个次幂)。双指针并不是固定的公式,而是一种思维的方式~链表 双指针法 快慢指针真题 LeetCode141 环形链表题目链接解题思路:快指针每次移动两步,
2021-12-05 23:57:23 355
原创 LeetCode 349 两个数组的交集 哈希法 unordered_set 查找or删除
题目链接class Solution {public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { //哈希法 //未限定数组的大小 则不考虑哈希数组 //无需统计某个值出现的次数,因此用不到map //unordered_set即可满足题目要求 unordered_set&
2021-12-03 00:48:04 565
原创 LeetCode 242 有效的字母异位词 哈希表初探 数组 or unordered_map
题目链接场景:判断某个元素是否出现过思路:考虑使用哈希表解法一:哈希数组. 由题意可知字符均为小写英文字母,数量有限,可以使用哈希数组。class Solution {public: bool isAnagram(string s, string t) { if(s.length() != t.length()) return false; int cnt[26] = {0}; for(int i = 0; i < s.length(
2021-12-03 00:08:21 221
原创 LeetCode 977 有序数组的平方 双指针法
题目链接要求o(n)复杂度,考虑使用双指针法避免多次遍历AC代码:class Solution {public: vector<int> sortedSquares(vector<int>& nums) { //双指针法 int left = 0, right = nums.size() - 1; int idx = right; vector<int> res(nums.size(
2021-12-02 23:02:18 132
原创 LeetCode 34 在排序数组中查找元素的第一个位置和最后一个位置 二分查找经典变种 值得一看
题目链接思路:一个自然的想法是先二分查找然后分别往左右遍历,找到所求的位置。但这样的话,最优复杂度达不到进阶题目要求的情况。或许可以在面试的时候先这么说,引导面试官让你优化,然后惊艳面试官,哈哈哈~使用两次二分查找,分别查找满足要求的左右坐标值,具体的思路在代码注释中了。网上一个优秀题解的情况分析:AC代码:class Solution {public: int searchleft(vector<int> &nums, int target){
2021-12-02 16:52:13 193
原创 LeetCode 链表阶段性总结 个人向 专题通关计划
文章目录虚拟头结点 哨兵结点双指针法 快慢指针真题:leetcode 剑指offer22 链表倒数第k个节点 双指针法 代码鲁棒性真题:删除链表的倒数第N个结点 双指针法 链表 虚拟头结点练习题目四结点法专题:链表反转真题:LeetCode 206. 反转链表 辅助结点真题:LeetCode 92. 反转链表II真题:LeetCode 24. 两两交换链表中的节点真题:LeetCode 25 K个一组翻转链表 分组+链表反转 虚拟头、尾结点综合题目:LeetCode143. 重排链表因为是篇个人向的文章,
2021-11-27 01:24:35 766
原创 Python 将按照标签归属的图像合并在一起 并生成相应的索引文件
需求:现在的数据集形式:举例:train文件夹下的形式也即现在图像数据已经按照标签划分到了相应的文件夹下,然后想把所有的图像数据统一放到’./images’文件夹下,同时生成相应的索引文件,方便后续适配自己继承实现的torch.utils.data.Dataset类。代码:import osimport shutilimport reimport numpy as npimport pandas as pdtrain_source = './train'val_source =
2021-11-17 21:53:48 649 1
原创 LeetCode 25 K个一组翻转链表 hard 分组+链表反转 虚拟头、尾结点
题目链接给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。进阶:你可以设计一个只使用常数额外空间的算法来解决此问题吗?你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。提示:列表中节点的数量在范围 sz 内1 <= sz <= 50000 <= Node.val <= 10001 <= k <= sz解题思
2021-11-17 14:05:51 148
原创 LeetCode 206. 反转链表 双指针法 辅助结点 递归
题目链接给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?双指针法+辅助结点:AC代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; *
2021-11-16 22:28:17 439
原创 LeetCode 19 删除链表的倒数第N个结点 双指针法 链表 虚拟头结点
题目链接给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。>示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 300 <= Node.val <= 1001 <= n <= sz进阶:你能尝试使用一趟扫描实现吗?双指针法,一遍扫描AC代码:/** * Definition for si
2021-11-16 14:00:30 333
原创 leetcode 剑指offer22 链表倒数第k个节点 双指针法 代码鲁棒性
题目链接剑指 Offer 22. 链表中倒数第k个节点输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.一道easy的题目,最简单的方法就是先遍历得到链表的长度,然后将指针移动到
2021-11-15 21:09:34 544
原创 linux常用命令
消除bash文件中Windows与linux空格或换行不匹配的问题:sed -i 's/\r$//' your_filenamestackoverflow: .sh: line 4: $’\r’: command not found
2021-08-15 17:28:42 161
原创 LeetCode 3 无重复字符的最长子串 滑动窗口方法
题目链接无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长
2021-05-18 20:27:54 1068
原创 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], l2 =
2021-05-17 15:39:51 133
原创 LeetCode 两数之和 unordered_map 哈希表
两数之和两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target
2021-05-15 21:31:38 141
原创 个人向 实验室服务器联网
鉴于最近总是需要使用隧道来给没网的服务器上网,特此使用截图记录。#安装proxychains#cd /root/shared/downloads/#dpkg -i libproxychains4_4.14-1_amd64.deb proxychains4_4.14-1_amd64.debvim /etc/proxychains4.conf#修改最后一行proxychains bashpip install lmdb大功告成!...
2021-04-16 21:32:46 260
原创 统计图像数据集下图像分辨率的分布情况
需求:统计图像数据集下图像分辨率的分布情况,以便将图像在输入到模型之前裁剪到合适的大小待统计的图像数据:(位于./lid/下)代码:import osimport pandas as pdfrom PIL import Imagefrom collections import Countersource = './lid/'imgfile = os.listdir(source)shot_cut = []long_cut = []print('filenum:', len([l
2021-03-19 18:07:17 1389 2
原创 linux 文件移动
先使用pwd命令分别查看源文件与目标文件的位置。然后使用mv命令移动即可。# mv [options] source desmv miniImageNet /root
2020-11-11 22:56:34 180
原创 Pycharm print打印输出显示不全 有省略号问题 tensor numpy pandas
如果是Pandas,则设置如下代码:import pandas as pdimport numpy as nppd.set_option('display.max_columns', None) #显示完整的列pd.set_option('display.max_rows', None) #显示完整的行如果是numpy:import numpy as npnp.set_printoptions(threshold=np.inf)如果是tensor,则先转换为numpy中的数据类型
2020-11-06 21:52:59 2160
原创 cv2 ImportError: libGL.so.1: cannot open shared object file: No such file or directory
本博客旨在解决在import cv2时出现的问题pip install opencv-pythonpip install opencv-contrib-python此时运行程序会出现标题所示错误,使用一下方法解决:sudo apt-get updatesudo apt-get install -y libgl1-mesa-dev如果在运行最后一条语句时出现错误:E: dpkg was interrupted, you must manually run 'sudo dpkg --confi
2020-10-24 01:46:17 1978 3
原创 服务器配置新的conda环境
配置conda环境换源新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入换源生成.condarc文件conda config --set show_channel_urls yes 修改该文件vim ~/.conda
2020-10-23 17:40:11 1945
原创 Pandas 数据查找及修改操作 iloc() & loc() bool类型索引
代码运行基于jupyter notebook文章目录一、数据加载二、.iloc() 用位置查找、修改数据查找数据修改数据三、.loc() 用标签查找、修改数据查找数据修改数据三、bool类型索引四、参考资料一、数据加载import pandas as pdimport picklewith open('titanic.pickle', 'rb') as file: df = pickle.load(file)二、.iloc() 用位置查找、修改数据df = df.set_inde.
2020-10-21 00:20:24 3557
原创 Python Pickle模块存储以及加载数据 加快运行
Pickle模块dump() 存储数据load() 加载数据参考资料在数据处理过程中,我们可能需要将变量保存下来,这样下次就可以直接读取处理后的结果,而不用重新执行某些重复耗时的操作。这里用到了Python的pickle包来做结果的存储和加载,dump() 存储数据pickle.dump(obj, file, protocol=None, *, fix_imports=True, buffer_callback=None)将序列化以后的obj对象写入已打开的file对象。import panda
2020-10-20 12:41:44 578
原创 numpy ndarray中所有元素必须是同一类型 否则会自动向下转换 int->float->str
在 ndarray 中所有元素必须是同一类型 否则会自动向下转换,int->float->str
2020-10-19 22:58:05 1487
原创 python 定位/修改DataFrame类型中某一值 根据相对时间的先后顺序来寻找参数值
需求描述:现在有一条生产线在生产一种产品,生产线上不同生产参数的数值会在许许多多的时间点上被记录,产品被生产出来时会有相对应的生产时间。对于产品A,小于其生产时间、并且离其生产时间最近的各个被记录的生产参数就是产品A所对应的生产参数。提供生产表:parameter.xlsx 其中包含各个时间点、记录的参数名称以及参数值提供产品表:ID_concat.xlsx 其中包含各个产品的生产时间使用ID[y][i] = stove['value'][j]的形式来更改DataFrame类型的某一个具体值,其
2020-09-07 19:45:36 924
原创 python 合并同一个excel文件中的多个sheets
功能需求如下:该excel文件中有21号与22号两天的数据,分别存放在两个sheet中,并且数据列名相同,要求将这两个sheet合并成一个sheetimport pandas as pd#import osfile = 'GlassID.xlsx'save_file = 'ID_concat.xlsx'def merge_sheets(file, save_file): file = pd.ExcelFile(file) sheet_names = file.sheet_nam
2020-09-07 19:25:50 903 2
原创 linux nohup后台托管命令
nohup python Standard_Training.py --gpu 0 > out.log 2>&1 &控制台输出被重定向到out.log文件中
2020-09-03 16:00:34 315
原创 Pytorch 二维矩阵中关于dim使用的样例
import torcha = torch.tensor([[1.0, 2.0, 3.0], [2.0, 2.0, 2.0], [3.0, 2.0, 1.0]])print(a.shape)print(a)"""torch.Size([3, 3])tensor([[ 1., 2., 3.], [ 2., 2., 2.], [ 3., 2., 1.]])"""使用softmax
2020-09-02 16:38:48 1613
原创 机器学习 绘制决策边界
本专栏计划借助Pandas与sklearn重新实现书中的实战案例。源代码及数据见Github决策树1. KNN算法流程2. KNN改进约会网站的配对效果2.1 数据准备:从文本中解析数据2.2 数据可视化:散点图2.3 数据处理:归一化数值2.4 构建KNN模型对测试集前10个样本进行预测寻找测试样本的K-近邻2.5 模型使用:构建可用系统3. KNN实现手写识别系统3.1 数据准备:将图像处理为向量3.2 数据集处理3.3 模型构建4. KNN总结5. 参考链接1. KNN算法流程对未知类别属性
2020-08-13 20:14:01 7274
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人