- 博客(53)
- 收藏
- 关注
原创 python 引用、深拷贝、浅拷贝
python 引用、深拷贝、浅拷贝1 相关概念1.1 python对象python对象是一个内存块,拥有特定的值,支持特定类型的相关操作。每个对象由:标识(identity)、类型(type)、value(值)三个部分组成,如下图所示:例1:s='abc'print('id: ',id(s))print('type: ',type(s))print('value: ',s)得到输出如下:id: 2959051297200type: <class ‘str’>va
2022-04-29 14:57:36 488
原创 深度学习符号指南
PS:因为找不到pdf里的链接,在这里截图记录一下,便于后续查看。截图来源:DeepLearning 深度学习笔记v5.6 P116
2022-01-22 20:17:59 766
原创 神经网络常见激活函数总结
最近在看大佬们整理的吴恩达老师的深度学习笔记,在这里总结一些常用的激活函数,以及它们的特点和选择。sigmoid 函数Sigmoid 是基础的非线性的激活函数,作用是将输入的连续实值变换为0和1之间的输出。对于非常大的负数,输出为0;对于非常大的正数,输出为1。它的数学公式为:函数图像如下图:tanh函数tanh函数的值域位于(-1,1)之间,且穿过原点。实际上,它是sigmoid函数向下平移和伸缩后的结果。它的数学公式为:函数图像如下图:relu函数
2022-01-21 16:26:38 3730
原创 多维奇异谱分析(Multivariate Singular Spectrum Analysis,MSSA)
多维奇异谱分析(Multivariate Singular Spectrum Analysis,MSSA)在实际运用中,通常需要对多个时间序列进行分析,而每个时间序列都有内部结构,且序列之间也会存在一定的依赖关系。因此,基本的单变量奇异谱分析(SSA)可以扩展到多元情况,也就是多维奇异谱分析(MSSA)。轨迹矩阵是求解SSA的主要工具,对于多变量情况,轨迹矩阵可以有不同的定义方式。主要可以分为水平和垂直两种方式。而每一种定义方式下,又可以有recurrent和vector两种预测方法,如下图所示:.
2021-10-03 19:52:08 3226 2
原创 奇异谱分析SSA
奇异谱分析SSA这两个月跟着老师做项目,接触了一点时间序列分析和预测的内容,主要是基于矩阵分解的奇异谱分析(Singular Spectrum Analysis,SSA),趁国庆放假,整理一下做个笔记。SSA (Singular Spectrum Analysis)奇异谱分析(SSA)是一种处理非线性时间序列数据的方法,可以对时间序列进行分析和预测。它基于构造在时间序列上的特定矩阵的奇异值分解(SVD),可以从一个时间序列中分解出趋势、振荡分量和噪声。SSA具有非常广泛的适用性,对于时间序列,既不需要
2021-10-02 21:25:10 17144 8
原创 力扣--1300. 转变数组后最接近目标值的数组和(中等题)
力扣--1300. 转变数组后最接近目标值的数组和(中等题)【题目描述】【示例】【题解】【思路】【代码】原题传送门【题目描述】给你一个整数数组 arr 和一个目标值 target ,请你返回一个整数 value ,使得将数组中所有大于 value 的值变成 value 后,数组的和最接近 target (最接近表示两者之差的绝对值最小)。如果有多种使得和最接近 target 的方案,请你返回这些整数中的最小值。请注意,答案不一定是 arr 中的数字。【示例】示例 1:输入:arr = [
2021-04-27 16:08:41 123
原创 1052. 爱生气的书店老板(中等题)--滑动窗口
力扣--1052. 爱生气的书店老板(中等题)--滑动窗口【题目描述】【示例】【直接暴力】【思路】【代码】【滑动窗口代码】这题最开始写的超时了,后来发现之前的写法有很多重复的计算,优化之后就过了,感觉这种写法遇到蛮多次的,做个笔记。原题传送门【题目描述】今天,书店老板有一家店打算试营业 customers.length 分钟。每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开。在某些时候,书店老板会生气。 如果书店老板在第 i 分钟生气,那么 grump
2021-04-26 19:29:29 129
原创 力扣--869. 重新排序得到 2 的幂(中等题)
力扣--869. 重新排序得到 2 的幂(中等题)【题目描述】【示例】【比较数字的组成是否一致】【思路】【代码】这题用暴力太复杂了, 看了题解发现一个好方法,所以做个笔记。原题传送门【题目描述】给定正整数 N ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。【示例】示例 1:输入:1输出:true示例 2:输入:10输出:false示例 3:输入:16输出:true
2021-04-23 16:51:18 234
原创 力扣--1726. 同积元组(中等题)
力扣--1726. 同积元组(中等题)【题目描述】【示例】【sort+双指针】【思路】【代码】【用哈希】【思路】【代码】这题用暴力过不去, 看了题解发现大家都用了哈希表,由于对这部分不是很熟悉,以前也没调过库用过,所以做个笔记。原题传送门【题目描述】给你一个由 不同 正整数组成的数组 nums ,请你返回满足 a * b = c * d 的元组 (a, b, c, d) 的数量。其中 a、b、c 和 d 都是 nums 中的元素,且 a != b != c != d 。【示例】示例 1:输入
2021-04-19 19:52:43 603
原创 力扣--62. 不同路径 63. 不同路径 II(中等题)
力扣--62. 不同路径(中等题)【题目描述】【示例】【动态规划】【思路】【代码】【找规律】【思路】【代码】典型的动态规划,也可以找规律来做。原题传送门【题目描述】一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?【示例】示例 3:输入:m = 7, n = 3输出:28示例 4:输入:m = 3, n = 3
2021-04-06 16:38:41 215
原创 力扣--151. 翻转字符串里的单词(中等题)
力扣--151. 翻转字符串里的单词(中等题)【题目描述】【示例】【解题过程】【思路】【代码】这题比较简单,直接根据题意做就可以,不过需要注意删除开头和结尾的空格。原题传送门【题目描述】给定一个字符串,逐个翻转字符串中的每个单词。说明:无空格字符构成一个 单词 。输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。【示例】示例 1:输入:“the sky is blue”输出:“blue is sky
2021-03-30 16:53:10 331
原创 力扣--199. 二叉树的右视图(中等题)
力扣--199. 二叉树的右视图(中等题)【题目描述】【示例】【解题过程】【思路】【代码】这题比较简单,层序遍历,每次把这层的最后一个放进列表就可以。原题传送门【题目描述】给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。【示例】【解题过程】【思路】层序遍历,每次把这层的最后一个放进列表。【代码】/** * Definition for a binary tree node. * struct TreeNode { * int va
2021-03-29 20:56:16 168
原创 python print()函数控制输出格式
python 控制输出格式【函数介绍】【print()函数】【format()函数】在这里总结一些python使用print()函数输出时控制格式的一些方法。【函数介绍】【print()函数】参考了菜鸟教程对print()函数的介绍:https://www.runoob.com/python3/python-func-print.html功能:用于打印输出参数:参数名含义flush输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强
2021-03-28 14:12:47 14846 4
原创 力扣--198. 打家劫舍(中等题)--动态规划
力扣--198. 打家劫舍(中等题)--动态规划【题目描述】【示例】【解题过程】【思路】【代码】显然,要用动态规划,和经典0-1背包问题蛮像的感觉。原题传送门【题目描述】你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。【示例】示例 1:输入:[1,2
2021-03-28 13:24:28 156
原创 力扣--剑指 Offer 60. n个骰子的点数(中等题)--动态规划
力扣--剑指 Offer 60. n个骰子的点数(中等题)--动态规划【题目描述】【示例】【解题过程】【思路】【代码】这题暴力搜索的时间复杂度时O(6^n),肯定会超时,想了很久,忍不住看了解答,发现要用动态规划,大佬从前往后递推不会造成越界,在这里做个笔记。原题传送门【题目描述】把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。【示例】示
2021-03-27 15:20:37 263
原创 力扣--130. 被围绕的区域(中等题)--从边界扩展
力扣--130. 被围绕的区域(中等题)--从边界扩展【题目描述】【示例】【解题过程】【思路】【代码】这是第一次做关于图的题,果然就懵了,看了官解,然后发现思路并不复杂,唉!原题传送门【题目描述】给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。【示例】提示:m == board.lengthn == board[i].length1 <= m, n <= 200b
2021-03-27 14:17:31 244
原创 python常见的输入格式处理总结
python常见的输入格式处理【函数介绍】【input()函数介绍】【eval()函数】【空格分隔的多项输入】【逗号分隔的多项输入】在这里总结一些python输入格式的处理方法。首先介绍一下input()函数和eval()函数。【函数介绍】【input()函数介绍】input()函数的功能是从键盘读取一行字符串,遇到换行符时结束读取,所以,当输入回车时,input()函数的读取就结束了。需要注意的一点是:无论用户输入的是字符还是数字,input()函数统一按照字符串类型输出。因此input()的输出
2021-03-27 00:49:52 9921 3
原创 力扣--148. 排序链表(中等题)
力扣--148. 排序链表(中等题)【题目描述】【示例】【解题过程】【思路】【代码】这题最开始自己写,超时了,看了官方解答,用的是归并排序。原题传送门【题目描述】给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。进阶:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?【示例】【解题过程】【思路】官解链接归并排序:【代码】class Solution {public: ListNode* sortList(Lis
2021-03-26 18:50:08 153
原创 力扣--121~122. 买卖股票的最佳时机(简单题)
力扣--121. 买卖股票的最佳时机(简单题)【题目描述】【示例】【解题过程】【思路】【代码】原题传送门【题目描述】给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0【示例】示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股
2021-03-24 15:43:38 139
原创 力扣--114. 二叉树展开为链表
力扣--114. 二叉树展开为链表【题目描述】【示例】【解题过程】【思路】【代码】这题用前序遍历的话,递归应该不难,但是官解给出了一个找父节点的方法,空间消耗是O(1),这里做个记录。原题传送门【题目描述】【示例】【解题过程】代码是在官解上加了点自己的注释,思路也是自己根据代码分析的, 官解链接【思路】将原来的右子树与左子树的最右边节点连接将左子树插入到右子树的地方考虑新的右子树的根节点,一直重复直到新的右子树为 null【代码】/** * Definition for a
2021-03-24 15:04:11 200
原创 力扣--1423. 可获得的最大点数(中等题)--滑动窗口
力扣--1423. 可获得的最大点数(中等题)--滑动窗口【题目描述】【示例】【解题过程】【思路】【代码】这题做的不是很顺畅,最开始想用贪心,每次加入较大的那个数,但是发现不可以,因为可能会有最小数在大数的外面的情况;后来又想用动规,想了很久没想出来状态转移方程,最后看了解答,发现很多都是用滑动窗口,就也用了。感觉还是这个比较香。原题传送门【题目描述】几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须
2021-03-21 16:06:47 160
原创 力扣--958. 二叉树的完全性检验(中等题)
力扣--958. 二叉树的完全性检验(中等题)【题目描述】【示例】【解题过程】【思路】【代码】这题比较简单,层序遍历的基础上,做一些判断就可以。原题传送门【题目描述】【示例】【解题过程】【思路】首先进行层序遍历,当发现某个结点有右儿子但没有左儿子,返回false,当发现一个结点少一个子节点,如果flag为0,就将flag标记为1,当有子节点,则需要判断flag是否为1,如果是1,说明前面有空缺,这不是完全的二叉树,返回false。遍历完了之后说明没有发现问题,这是完全二叉树,返回true。
2021-03-21 14:35:26 180
原创 力扣--1535. 找出数组游戏的赢家(中等题)
力扣--1535. 找出数组游戏的赢家(中等题)【题目描述】【示例】【解题过程】【思路】【代码】其实仔细想清楚这个过程可以发现,当k比较大时,最后答案就是数组的最大值,因此,不需要真的像题目描述的那样去更换数组中元素的位置,那样肯定会超时(别问我怎么知道的,问就是最开始这样写然后超时了),后来想通了,只需要更改下标进行比较就可以了。原题传送门【题目描述】给你一个由 不同 整数组成的整数数组 arr 和一个整数 k 。每回合游戏都在数组的前两个元素(即 arr[0] 和 arr[1] )之间进行。比
2021-03-21 13:25:13 228 1
原创 力扣--1375. 灯泡开关 III(中等题)
力扣--1375. 灯泡开关 III(中等题)【题目描述】【示例】【解题过程】【思路】【代码】【改进版代码】跑上来还是先直接暴力搜索,用一个数组标记了一下状态,耗时耗空间,后来再做了改进。原题传送门【题目描述】【示例】【解题过程】【思路】先用flag数组,标记所有灯泡的开关情况,然后记录当前打开的最右边的灯泡,每次遍历flag数组,发现right前面有没有打开的灯,就结束遍历。【代码】根据上面的思路,写出了第一个版本的代码:class Solution {public:
2021-03-20 17:12:27 179
原创 力扣--1390. 四因数(中等题)--枚举法
力扣--1390. 四因数(中等题)【题目描述】【示例】【解题过程】【思路】【代码】【改进版代码】这题也是找规律。原题传送门【题目描述】给你一个整数数组 nums,请你返回该数组中恰有四个因数的这些整数的各因数之和。如果数组中不存在满足题意的整数,则返回 0 。【示例】示例:输入:nums = [21,4,7]输出:32解释:21 有 4 个因数:1, 3, 7, 214 有 3 个因数:1, 2, 47 有 2 个因数:1, 7答案仅为 21 的所有因数的和。提示:1
2021-03-19 20:26:07 258
原创 力扣--二叉树的遍历题
力扣--二叉树的遍历题【前序遍历】【递归法代码】【迭代法代码】【后序遍历】【递归法代码】【迭代法代码】这几题都是关于二叉树的遍历,前序中序后序,虽然比较基础,但还是做个笔记吧。代码都是官解的代码。【前序遍历】144. 二叉树的前序遍历前序遍历官解【递归法代码】/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *r
2021-03-19 16:07:36 197
原创 力扣--338. 比特位计数(中等题)
力扣--338. 比特位计数(中等题)【题目描述】【示例】【解题过程】【思路】【代码】【改进版代码】这题也是找规律。原题传送门【题目描述】给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。【示例】示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]进阶:给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n
2021-03-17 21:52:19 137
原创 力扣--面试题 04.03. 特定深度节点链表(中等题)
力扣--面试题 04.03. 特定深度节点链表(中等题)【题目描述】【示例】【解题过程】【思路】【代码】这题考察了二叉树的遍历和链表,我采用的是层序遍历,利用队列完成。原题传送门【题目描述】给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表)。返回一个包含所有深度的链表的数组。【示例】【解题过程】【思路】借用队列进行层序遍历,在每一层,把结点存入链表,把每个结点的左右子节点存入队列,然后删除该结点。【代码】/** * D
2021-03-17 21:01:28 131
原创 力扣--19. 删除链表的倒数第 N 个结点(中等题)
力扣--19. 删除链表的倒数第 N 个结点(中等题)【题目描述】【示例】【解题过程】【思路】【代码】这题如果可以遍历两次链表,就很简单:先统计链表长度,第二遍的时候在进行删除操作。如果只遍历一次,我采用的是快慢指针法。原题传送门【题目描述】【示例】示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1≤sz≤301 \le sz \le 301≤sz≤300≤
2021-03-16 17:29:53 188
原创 力扣--16. 最接近的三数之和(中等题)
力扣--16. 最接近的三数之和(中等题)【题目描述】【示例】【解题过程】【思路】【代码】这题和第15题很类似,解题思路也差不多,虽然耗时蛮长的,用了三层循环,但是很快就写出来了还是很开心。思路可以看看之前写的第15题:第15题:三数之和博客第16题传送门【题目描述】给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。【示例】示例:输入:nums = [-
2021-03-16 16:54:35 154
原创 力扣--17. 电话号码的字母组合(中等题)
力扣--17. 电话号码的字母组合(中等题)【题目描述】【示例】【贪心】【思路】【代码】【题目描述】原题传送门【示例】示例 1:输入:digits = “23”输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]示例 2:输入:digits = “”输出:[]示例 3:输入:digits = “2”输出:[“a”,“b”,“c”]提示:0≤digits.length≤40 \le digits.length \le
2021-03-15 20:45:09 238
原创 力扣--12. 整数转罗马数字 (中等题)--贪心
力扣--12. 整数转罗马数字(中等题)【题目描述】【示例】【贪心】【思路】【代码】(中等题))【题目描述】原题传送门【示例】示例 1:输入: 3输出: “III”示例 2:输入: 4输出: “IV”]示例 3:输入: 9输出: “IX”]示例 4:输入: 58输出: “LVIII”解释: L = 50, V = 5, III = 3.示例 5:输入: 1994输出: “MCMXCIV”解释: M = 1000, CM = 900, XC =
2021-03-14 15:26:45 117
原创 力扣--11. 盛最多水的容器 (中等题)
力扣--11. 盛最多水的容器(中等题)【题目描述】【示例】【暴力】【思路】【代码】【双指针法】【代码】(中等题))【题目描述】给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。原题传送门【示例】示例 2:输入:height = [1,1]输出:1示例 3:输
2021-03-14 15:03:24 135
原创 力扣--67. 二进制求和(简单题)
力扣--67. 二进制求和(简单题)【题目描述】【示例】【解答】【思路】【代码】这题思路蛮简单的。【题目描述】给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。原题传送门【示例】示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”提示:每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。1≤a.length,b.length≤
2021-03-13 15:29:02 171
原创 力扣--5. 最长回文子串(中等题)
力扣--5. 最长回文子串(中等题)【题目描述】【示例】【解答--中心扩散】【思路】【代码】【看看官解】【中心扩散】【动态规划】【Manacher算法】这是4天前尝试做,然后失败了的一题,当时大概瞄了一眼题解,大多都是动态规划、中心扩散法,当时觉得很难,就决定跳过,今天再做了一次,感觉整体思想和中心扩散法蛮接近的。【题目描述】给你一个字符串 s,找到 s 中最长的回文子串。原题传送门【示例】示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。
2021-03-12 17:43:18 154
原创 力扣--66. 加一 (简单题)
力扣--66. 加一 (简单题)【题目描述】【示例】【解答】【思路】【代码】昨天果然咕咕咕,只背了单词,没有做题。。。今天先来个简单题吧,待会就把之前剩下的坑补上。【题目描述】给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。原题传送门【示例】示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例
2021-03-12 16:12:05 211
原创 力扣--6. Z 字形变换(中等题)--找规律
力扣--6. Z 字形变换(中等题)【题目描述】【示例】【解答】【思路】【代码】其实是周三的第三题,打鸡血写了一道中等题,通过画表格,找到规律,虽然解题用了一个半小时,但是自己找到了规律并且把代码敲出来一次过了,而且时空表现都很好,还是很开心hhhh【题目描述】将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:
2021-03-11 00:15:28 196 1
原创 力扣--58. 最后一个单词的长度 (简单题)
力扣--58. 最后一个单词的长度【题目描述】【示例】【解答】【思路】【代码】【反思】(简单题) )今天的第二道简单题,先用了暴力搜索法,耗时比较长。【题目描述】给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。原题传送门【示例】示例 1:输入:s = “Hello World”输出:5示例 2:输入:s = " "输出:0提示:1≤s
2021-03-10 21:08:36 817
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人