- 博客(29)
- 收藏
- 关注
原创 数据预处理
.csv文件 逗号分隔的文件相关函数import os import pandas as pd import torchos.path.join() 创建一个路径os.makedirs(路径名,exist_ok = True) 创建一个文件夹 文件夹已存在不抛出异常data = pd.read_csv(路径名) 读取csv文件data.iloc[] 切片操作data.fillna(数据,inplace=false)补缺数据 inplace参数为false不...
2021-10-26 04:17:05
302
原创 张量类的数据操作
引入张量张量表示由一个数值组成的数组,这个数组可能有多个维度。具有一个轴的张量对应数学上的向量(vector)。具有两个轴的张量对应数学上的矩阵(matrix)。具有两个轴以上的张量没有特殊的数学名称。常用函数import torch创建一个一维张量x = torch.arange(12) 0~12创建一个元素均为0的张量 形状为(2,3,4)x = torch.zeros((2,3,4))创建一个元素均为1的张量 形状为(2,3,4)x = torch.ones((2.
2021-10-26 01:54:24
375
转载 滑动窗口模板
def findSubArray(nums): N = len(nums) # 数组/字符串长度 left, right = 0, 0 # 双指针,表示当前遍历的区间[left, right],闭区间 sums = 0 # 用于统计 子数组/子区间 是否有效,根据题目可能会改成求和/计数 res = 0 # 保存最大的满足题目要求的 子数组/子串 长度 while right < N: # 当右边的指针没有搜索到 数组/字符串 的结尾 sums.
2021-10-03 17:48:27
154
原创 进制转换模版C++(2种模版)
给定数Num求其N进制字符串string Str ;void Fun(long long num){ if(num >= N){ Fun( num / N); Str.push_back(num % N) ; }else Str.push_back(num) ; return ;}long long Max = 1 ,num = (long long)Num;Max = Max <<
2021-10-02 17:58:54
169
原创 C++ unique 函数
去重函数 将重复的树插入到数组尾部 返回插入尾部重复元素的起始迭代器使用方法vector<int> Arr ;auto it = unique(Arr.begin(),Arr.end()) ;去重并删除Arr.erase(it,Arr.end());
2021-09-20 22:04:48
327
原创 C++ string获得字符串首地址及转数字
string类里的c_str()函数可以获得字符串首地址atoi(地址) 即可将字符串转位int类型整数
2021-09-18 15:31:32
3117
转载 回溯算法模板
void backtracking(参数) { if (终止条件) { 存放结果; return; } for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) { 处理节点; backtracking(路径,选择列表); // 递归 回溯,撤销处理结果 }}...
2021-09-15 16:48:13
89
转载 BFS算法模版
1 如果不需要确定当前遍历到了哪一层,BFS 模板如下。while queue 不空: cur = queue.pop() for 节点 in cur的所有相邻节点: if 该节点有效且未访问过: queue.push(该节点)2如果要确定当前遍历到了哪一层,BFS 模板如下。这里增加了 level 表示当前遍历到二叉树中的哪一层了,也可以理解为在一个图中,现在已经走了多少步了。size 表示在当前遍历层有多少个元素,也就是队列中的..
2021-09-14 22:52:15
200
原创 116. 填充每个节点的下一个右侧节点指针
116. 填充每个节点的下一个右侧节点指针给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为NULL。初始状态下,所有next 指针都被设置为NULL。进阶:你只能使用常量级额外空间...
2021-09-13 22:11:36
108
原创 617. 合并二叉树
617. 合并二叉树给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为NULL 的节点将直接作为新二叉树的节点。示例1:输入: Tree 1 Tree 2 1 2 ..
2021-09-13 17:43:00
153
1
原创 695. 岛屿的最大面积
695. 岛屿的最大面积给定一个包含了一些0和1的非空二维数组grid。一个岛屿是由一些相邻的1(代表土地) 构成的组合,这里的「相邻」要求两个1必须在水平或者竖直方向上相邻。你可以假设grid的四个边缘都被0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0,1,1,0,1,...
2021-09-13 17:42:38
67
原创 733. 图像渲染(广度优先搜索 / 深度优先搜索)
733. 图像渲染有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标(sr, sc)表示图像渲染开始的像素值(行 ,列)和一个新的颜色值newColor,让你重新上色这幅图像。为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像素值与初始坐标相同的相连像素点,……,重复该过程。将所有有记录的像素点的颜色值改为新的颜色值。...
2021-09-12 20:06:29
107
原创 567. 字符串的排列(滑动窗口)
567. 字符串的排列给你两个字符串s1和s2,写一个函数来判断s2是否包含s1的排列。换句话说,s1的排列之一是s2的子串。示例 1:输入:s1 = "ab" s2 = "eidbaooo"输出:true解释:s2 包含 s1 的排列之一 ("ba").示例 2:输入:s1= "ab" s2 = "eidboaoo"输出:false提示:1 <= s1.length, s2.length <= 104 s1和s2仅包...
2021-09-12 16:43:56
100
原创 C++ vector开辟二维数组 记录一下
vector<vector<int>> Arr( XSize,vector<int>(YSize, Num) ) ;
2021-09-11 21:01:32
88
原创 3. 无重复字符的最长子串(滑动窗口)
3. 无重复字符的最长子串给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 ...
2021-09-10 14:34:51
83
原创 19. 删除链表的倒数第 N 个结点(双指针)
19. 删除链表的倒数第 N 个结点难度中等1553收藏分享切换为英文关闭提醒反馈给你一个链表,删除链表的倒数第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]提示:链表中结点的数目为sz 1 &...
2021-09-10 10:43:01
70
原创 876. 链表的中间结点(快慢双指针)
876. 链表的中间结点难度简单400收藏分享切换为英文接收动态反馈给定一个头结点为head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.n..
2021-09-09 16:44:56
72
原创 557. 反转字符串中的单词 III(双指针)
557. 反转字符串中的单词 III难度简单326收藏分享切换为英文接收动态反馈给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例:输入:"Let's take LeetCode contest"输出:"s'teL ekat edoCteeL tsetnoc"提示:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。class Solution {public: void Reverse(strin
2021-09-08 21:12:32
82
原创 344. 反转字符串(双指针)
344. 反转字符串难度简单448收藏分享切换为英文接收动态反馈编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是ASCII码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:["H","a","n","...
2021-09-08 20:58:28
77
原创 167. 两数之和 II - 输入有序数组(双指针)
167. 两数之和 II - 输入有序数组难度简单577给定一个已按照非递减顺序排列的整数数组numbers,请你从数组中找出两个数满足相加之和等于目标数target。函数应该以长度为2的整数数组的形式返回这两个数的下标值。numbers的下标从 1 开始计数,所以答案数组应当满足1 <= answer[0] < answer[1] <= numbers.length。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素...
2021-09-08 00:02:58
90
原创 283. 移动零(双指针)
283. 移动零难度简单1211给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。class Solution {public: void moveZeroes(vector<int>& nums) { int Tmp = 0 ; //记录0的个数 ...
2021-09-07 23:52:58
324
原创 189. 旋转数组(3种方法 环状替换法 3次翻转法)
189. 旋转数组难度中等1108给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 你可以使用空间复杂度为O(1) 的原地算法解决这个问题吗?示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转...
2021-09-07 23:41:04
136
原创 977. 有序数组的平方(这题可以练习一下各种排序 双指针)
977. 有序数组的平方难度简单290给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= n...
2021-09-06 10:13:54
98
原创 35. 搜索插入位置(二分法)
35. 搜索插入位置难度简单1051给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(log n)的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: ...
2021-09-05 16:55:39
113
原创 278. 第一个错误的版本(二分法)
278. 第一个错误的版本难度简单399你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有n个版本[1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用bool isBadVersion(version)接口来判断版本号version是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 A...
2021-09-05 15:39:45
93
原创 704. 二分查找
class Solution {public: int search(vector<int>& nums, int target) { int Left = 0 ; int Right = nums.size()-1; int Middle = (Left + Right)/2 ; while(Left <= Right){ if(target == nums[Middle]) .
2021-09-05 15:14:51
86
原创 时间与空间复杂度
一 时间复杂度 时间复杂度可以大致地通过一个算法的运行次数来描述一个算法的允许效率 , 常用O表示 在表示一个算法的时间复杂度时,只保留数量级最大的一项 ,并忽略其系数。 栗子:常数阶int sum = 0 , n = 100 ; // 执行1次sum = (sum + n)*n / 2 ; //执行1次std::cout<<sun<<std::endl; //执行1次 执行了3次 时间复杂度O(3) 忽略系数即...
2021-07-19 02:25:15
125
原创 UNIX进程间通信之管道(参考UNIX环境编程)
目录一 概述二 管道API三 管道本身特点四 管道读写特点(假设没有给管道设置非堵塞标志)五 管道图像描述六 一些管道用法1 创建一个连接到另一个进程的管道2通过两个管道让父进程和子进程1 同步 2 避免竞争七 popen与pclose函数八 协调进程概念一 概述 管道是UNIX间进程间通信最古老一种方式 所有UNIX系统都支持这种方式 。二 管道API#include <unistd.h>...
2021-07-17 05:36:20
693
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人