- 博客(46)
- 资源 (2)
- 收藏
- 关注
原创 JavaScript内存管理机制
JavaScript内存管理机制(Memory Management)本文核心内容来源于MDN Memory Management内存生命周期内存生命周期在大多数编程语言中都是一样的,见下图分配内存读写内存的值当内存不再被使用的时候,释放内存第二步在所有编程语言中都已经明确好的。第一步和最后一步在低级语言中通过手动方式管理,在高级语言中通过自动方式管理。手动内存管理。低级语言比如说c, c++需要程序员明确地操作内存分配和内存释放的指令,比如通过malloc()和free()自动内
2021-09-26 03:00:38
251
原创 React component生命周期详解
目录什么是react component通过函数定义的component通过class定义的componentreact component的生命周期Mounting(挂载时)Updating(更新时)Unmounting(卸载时)Error Handling错误处理常见的生命周期方法constructor()render()componentDidMount()componentDidUpdate()componentWillUnmount()例子-计时器参考阅读前需要具备下面两个知识点props
2021-08-19 01:45:49
1105
原创 Leetcode 22. Generate Parentheses解题思路
题目:Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.Example 1:Input: n = 3Output: ["((()))","(()())","(())()","()(())","()()()"]方法1: brute force假设我现在有个空篮子可以用来装括号,我先不管这个篮子的括号是否有效,每次我选开括号"(“或者闭括号”)"
2021-06-17 00:55:33
270
原创 两种方法推导建堆的时间复杂度O(n)
可以通过siftdown或者siftup建立二叉堆。siftdown: 如果节点小于其最大的子节点,将二者进行交换,直到节点大于或等于所有子节点。整个过程节点向下调整。siftup: 如果节点大于其父节点,将二者交换,直到节点小于或者等于其父节点。整个过程节点向上调整。siftdown或者siftup在最坏情况下都是O(logn)。siftdown操作次数取决于节点离堆底的距离,siftup的操作次数取决于节点离堆顶的距离。siftdown的效率更高一些,因为建堆时计算每个节点到底部或者顶部的距离
2021-05-10 08:16:51
1351
原创 leetcode 1336解题思路
题目见:https://leetcode.jp/problemdetail.php?id=1336Table: Visits+---------------+---------+| Column Name | Type |+---------------+---------+| user_id | int || visit_date | date |+---------------+---------+(user_id, visit_date) i
2021-05-03 06:56:55
238
原创 leetcode题解 meeting-scheduler
题目链接:https://leetcode.com/problems/meeting-scheduler/Given the availability time slots arrays slots1 and slots2 of two people and a meeting duration duration, return the earliest time slot that works for both of them and is of duration duration.If there
2021-04-30 03:30:26
297
原创 7天刷完剑指offer(二)
题库来源:牛客网《7天刷完剑指offer》系列只提供解题思路,代码实现见牛客网数值的整数次方题目:思路解法1: 暴力法。exponent个base相乘,循环exponent次。时间复杂度:O(n),空间复杂度:O(1)解法2: 快速幂。已知basee=(basee2)2base^e = (base^{\frac{e}{2}})^2basee=(base2e)2, 如果e 是偶数。当e是奇数,basee=(basee2)2∗basebase^e = (base^{\frac{e}{2}})^2
2021-03-23 14:02:49
169
原创 用raspberry pi自制Amazon Echo
硬件设备我的设备基本都是在seeed上买的,因为seeed wiki提供设备的详细文档。Raspberry Pi 4B, 我买的是4GBSeeed ReSpeaker 2-Mics Pi HATGrove - Speaker Plus。蓝牙或者带线的speaker都行。没有speaker就用耳机听。推荐大家配置之前先看看这些文档,熟悉熟悉设备Raspberry Pi 4BSeeed ReSpeaker 2-Mics Pi HATStep 1: 连接 设备把 ReSpeake
2021-03-13 14:55:57
272
原创 字节跳动大数据开发编程题集合
编程题来源于牛客网的面经让写一个二叉树最长路径和,返回这个路径和中最大和的那些节点思路:递归。当前节点的最大贡献值(路径和) = 当前节点值 + 左子树最大贡献 + 右子树最大贡献使用队列实现栈的的过程思路:栈的add, pop操作小和问题思路:归并排序https://blog.csdn.net/qq_34761012/article/details/104859991判断平衡二叉树思路:递归。先通过递归和hashmap获得每个节点为根的高度depth = max(left
2021-03-03 15:05:09
905
1
原创 7天刷完剑指offer(一)
7天看完剑指offer解题思路(一)题库来源:牛客网《7天看完剑指offer解题思路》系列只提供解题思路,代码实现见牛客网二维数组查找题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路解法1:暴力枚举遍历数组中每个元素,如果找到了target,就返回true,否则返回false时间复杂度:O(n2)O(n^2)O(n2)空间复杂度:O(1)
2021-02-09 11:32:53
551
原创 30分钟总结Java面向对象编程
这份总结适用于有Java基础的同学的复习或者面试前的准备。不了解Java基础知识以及面向对象的同学,请移步尚硅谷的视频https://www.bilibili.com/video/BV1Kb411W75N?p=1本文介绍以下内容Java的类和对象含义类的五个成员:属性、方法、构造器、代码块、内部类面向对象编程的三大特征:封装、继承、多态Java中的关键字static,final,abstract,四个权限修饰符Java中的接口类和对象类是对具体事物的抽象的概括。比如人对象是实际存在的个
2021-02-08 03:49:29
302
原创 10分钟入门transformer
理解本文需要以下基础知识前向神经网络attentionencoder-decordersequence to sequence learning背景介绍基于RNN的神经网络在自然语言处理领域一直处于领先地位。RNN衍生的两个方法LSTM和GRU很好的解决了梯度消失的问题,因此基于RNN的神经网络成为sequence to sequence learning的优先选择。Ilya Sutskever[6]等人在2014年将encoder-decoder用于机器翻译。先用一个LSTM模型编码输入
2021-02-03 14:33:56
645
原创 如何在Raspberry Pi 4b+使用Netflix, Disney Plus, HULU, spotify等流媒体,简单有效
在树莓派的终端输入如下命令即可curl -fsSL https://pi.vpetkov.net -o ventz-media-pish ventz-media-pisudo reboot如图在树莓派的界面,多了一个browser media edition测试结果hulu正常播放spotify正常播放原理参考https://www.youtube.com/watch?v=wwCVq0xncuUhttps://blog.vpetkov.net/2019/07/12/netflix
2021-02-03 00:54:15
1587
原创 【刷题打卡】day11-二叉树
从现在开始每天至少刷一道题。题库:lintcode有些题目链接打不开,需要权限,那大家就去九章算法参考答案里找找。Insert Node in a Binary Search Tree题目链接难度:easy算法:二分法解题思路插入一定在树的叶子节点上。如果target大于节点值,往右子树搜索;否则,往左子树搜索。当搜索null时,说明可以找到可以插入的位置。存储插入位置之前的那个父节点。如果该父节点大于target,target是父节点的左节点,否则是右节点。时间复杂度:O(logn)空
2021-01-15 08:36:23
673
原创 【刷题打卡】day10-分治法
从现在开始每天至少刷一道题。题库:lintcode有些题目链接打不开,需要权限,那大家就去九章算法参考答案里找找。Invert Binary Tree题目链接难度:easy算法:分治解题思路采用分治的思想,先通过递归的方式把左右子树各自翻转后,再将根节点左右子树翻转一下。注意:这里说不能用递归。不用递归就徒手写栈吧。反正递归也是通过栈实现时间复杂度:O(logn)空间复杂度:O(1)解法/** * Definition of TreeNode: * public class T
2021-01-14 11:48:37
567
原创 【刷题打卡】day9-图和bfs
从现在开始每天至少刷一道题。题库:lintcode有些题目链接打不开,需要权限,那大家就去九章算法参考答案里找找。431. Connected Component in Undirected Graph题目链接难度:medium算法:bfs解题思路遍历节点数组nodes中的节点,如果节点没有被访问过,说明这个节点在一个新的连接块(Connected Component)上,新建一个数组存储该连接块中的节点。通过bfs获取与该节点连接在一起的所有节点。注意在同一个连接块中的节点按照label
2021-01-13 12:18:05
260
原创 【刷题打卡】day8-图和bfs
从现在开始每天至少刷一道题。题库:lintcode有些题目链接打不开,需要权限,那大家就去九章算法参考答案里找找。892. Alien Dictionary题目链接难度:hard算法:拓扑排序时间复杂度:这道题的时间复杂度我也有点纠结,在建图过程中先循环words,然后嵌套循环每个单词中的字符,其中用了if语句提早终止循环。如果if语句不算基本操作,那么这里的时间复杂度就是O(max(V, E))。如果if语句算作基本操作,那么时间复杂度最坏就是O(MN),M表示单词数,N表示最长的单词字符数
2021-01-12 12:50:33
831
原创 【刷题打卡】day7-BFS
从现在开始每天至少刷一道题。题库:lintcode有些题目链接打不开,需要权限,那大家就去九章算法参考答案里找找。598. Zombie in Matrix题目链接难度:medium算法:bfs时间复杂度:O(nm), 遍历整个matrix,需要O(nm)空间复杂度:O(nm),队列最大内存开销是当matrix所有元素初始值都是zombie。解题思路这道题我最开始的思路是遍历matrix,将僵尸加到队列中将队首出队,将队首附近的被感染的人入队循环第2步直到队列为空。遍历此时的m
2021-01-11 15:01:50
2802
原创 【刷题打卡】day5-二分法
从现在开始每天至少刷一道题。题库:lintcode有些题目链接打不开,需要权限,那大家就去九章算法参考答案里找找。457. Classical Binary Search题目链接难度:easy算法:二分法时间复杂度: O(n)空间复杂度:O(1)解题思路套用九章算法的二分法模版解法public class Solution { /** * @param nums: An integer array sorted in ascending order * @
2021-01-07 05:16:37
568
原创 【刷题打卡】day6-二分法和bfs
从现在开始每天至少刷一道题。题库:lintcode有些题目链接打不开,需要权限,那大家就去九章算法参考答案里找找。62. Search in Rotated Sorted Array题目链接难度:medium算法:二分法时间复杂度:O(logN)空间复杂度:O(1)解题思路两种解法解法1: 先二分法找到最小值,判断target在最小值的左边还是右边,然后继续用有序数组二分法在左边或者右边查找解法2: 直接二分法,先判断递增序列在mid的左侧还是右侧,然后判断target是否在递增序列
2021-01-07 05:15:58
168
2
原创 【刷题打卡】day4-双指针
从现在开始每天至少刷一道题。题库:lintcode有些题目链接打不开,需要权限,那大家就去九章算法参考答案里找找。382. Triangle Count题目链接难度:medium算法:双指针时间复杂度:O(n^2)空间复杂度:O(1)解题思路根据两边之和大于第三边,先找最大边,然后根据2sum的方法找到和大于最大边的两个数。解法public class Solution { /** * @param S: A list of integers * @ret
2021-01-01 11:33:57
267
原创 【刷题打卡】day3-双指针
从现在开始每天至少刷一道题。题库:lintcode有些题目链接打不开,需要权限,那大家就去九章算法参考答案里找找。539. Move Zeroes题目链接难度:easy算法:同向双指针解题思路同向双指针指的是两个指针从头走到尾,方向相同。一看到这种把0放到一头,非0的数字放另一头的题目,而且还是in-place,优先考虑用双指针。双指针特别是同向双指针的题目最主要是理解两根指针代表的含义。这道题我们需要一根指针(right)遍历原来的数组,还要一根指针(left)指示新数组非0元素的位置。在
2020-12-29 07:54:02
89
原创 【刷题打卡】day2-字符串string
从现在开始每天至少刷一道题。题库:lintcode594. strStr II题目链接难度:hard算法:Rabin–Karp先普及两个知识点滚动哈希和Rabin–Karp算法什么是滚动哈希?首先了解一下通过哈希函数,将字符转化成数字,id(char) = char - ‘a’ + 1。 例如字符’c’可以转化成3。滚动哈希指的是当前哈希值依赖上一个哈希值的结果作为输入。给定一个字符串s, i 为s的索引, hash(i) = (hash(i-1) * base + id(s[i]) )
2020-12-28 08:34:07
378
原创 【刷题打卡】day1 - 字符串string
从现在开始每天至少刷一道题。题库:lintcode1790. Rotate String II题目链接难度:easy算法:字符串操作解题思路总偏移量offset = left - right。如果总偏移量>0, 字符串往左偏移, offset从起点开始偏移,把[0, offset], [offset, string长度]两边子字符串交换一下。如果right > left. 字符串往右偏移,offset从终点开始偏移, 把[0, string长度-offset]和[string长
2020-12-27 04:00:25
285
1
原创 pytorch collate_fn函数实现变长序列 - dynamical padding
注意:这里的batch指的是mini-batch两种实现序列(文本、日志)批处理的方法固定长度的batches(uniform length batches)所有batch内序列的长度一样。比如seqs = [[1,2,3,3,4,5,6,7], [1,2,3], [2,4,1,2,3], [1,2,4,1]]batch_size = 2那么最大序列长度取8,如果不足8用0填充到该长度batch1 = [[1, 2, 3, 3, 4, 5, 6, 7], [1, 2, 3, 0, 0, 0,
2020-10-01 13:46:50
1398
原创 如何在家通过ssh远程连接实验室电脑
IP配置如果用校内网在实验室电脑在commond shell输入ifconfigor ip -a, 查看inet 后面的ip. 在家的电脑连接校园vpn, 通过局域网ip即可如果是校外网参考其他资料mac/linux/windows 10登陆方式1. 生成rsa key-pair在本地电脑的command shell利用下面的命令生成rsa key-pair# generate a key-pair; this create two files# ~/.ssh/id_rsa(priva
2020-09-19 08:28:07
4287
原创 单词搜索 II · Word Search II答案解析
题目:原题见lintcode链接, 或者复制以下链接到浏览器https://www.lintcode.com/problem/word-search-ii/description?_from=ladder&&fromId=161132. Word Search IIGiven a matrix of lower alphabets and a dictionary. Find all words in the dictionary that can be found in the ma
2020-08-05 05:22:22
561
原创 终于学会了二分类
我一直觉得二分类写法变来变去,有时候+1, 有时候-1,完全摸不着头脑。直到我上了某章的算法课,里面讲到了二分法模版,变形,我才恍然大悟。二分法模版题目见https://www.lintcode.com/problem/first-position-of-target/description基础模版详细解析我用的模版class Solution: """ @param nums: The integer array. @param target: Target to fin
2020-07-20 14:56:53
205
原创 最长回文子串Longest Palindromic Substring
题目见lintcode, 其他参考答案见九章算法描述给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串。样例样例 1:输入:“abcdzdcab”输出:“cdzdc”样例 2:输入:“aba”输出:“aba”挑战O(n2) 时间复杂度的算法是可以接受的,如果你能用 O(n) 的算法那自然更好。方法一:中心点枚举注意:要考虑中心点是一个数(比如: aba)和两个数(比如:abba)的情况。如果不清楚是+1还是-1,找个实例验证一下
2020-07-20 05:53:29
130
原创 字节跳动提前批-算法-笔试
根据kyrie同学的字节跳动提前批-算法-笔试面经中的三道题给出自己的解法第一题:输入说明:第一行输入n代表队伍中的人数第二行输入队伍中每个人的身高(用空格隔开)比如输入:52 3 1 5 465 4 1 6 8 2输出说明:如果现在所在位置之前没有比自己身高高的,数值变为-1,如果现在所在位置之前有比自己身高高的,数值变为所在位置之前那个离自己最近的且比自己高的那个人的身高上例的输入对应输出:5-1 -1 3 -1 46-1 5 4 -1 -1 8思路:题目中输入5, 2
2020-07-18 03:52:59
522
原创 mysql忘记密码后如何重置密码
macOS terminalmysql 8.0How to reset new password without old one#1. stop mysql/usr/local/mysql/support-files/mysql.server stop#2.Run the server in safe mode with privilege bypass: sudo mysqld_...
2020-03-04 04:55:59
334
转载 多元线性回归模型检验方法
终于找到一篇全面而又简洁的讲多元线性回归模型检验方法的文章PDF下载地址链接:https://pan.baidu.com/s/1UbyZcMC1VRTmlCEaX4Vybg提取码:g481具体内容一、经济意义检验经济意义检验主要检验模型参数估计量在经济意义。其表现为检验求得的参数估计值的符号与大小是否合理,是否与根据人们的经验和经济理论所拟定的期望值相符合。如果不符,则要查找原因和采取...
2019-08-10 22:07:21
24021
原创 用户流失预测——基于逻辑回归模型以及Python代码实现
研究目的有效预测当前用户是否流失,针对高价值的潜在流失用户进行精细化运营以此挽留目标用户。用户流失预测2.1用户流失定义流失用户:上一个周期有下单而本周期没有下单的用户非流失用户:上一个周期和本周期都有下单的用户2.2用户流失率以一个季度为周期,用户流失率指的是上一个周期有下单而本周期没有下单的用户数与上一个周期有下单的用户之比。下图为近四个周期的用户流失率,平均流失率为19.76...
2019-07-25 15:24:33
10802
5
原创 逻辑回归模型原理
逻辑回归模型逻辑回归是回归模型还是分类模型?分类模型。分类与回归最大的差别在于输出变量Y的形式不同,前者Y取有限个离散值,后者的Y是连续值。为什么名字中带“回归”二字?逻辑回归就是用回归的方法(用函数拟合自变量和因变量关系),加上一个分类规则,对结果分类。逻辑回归(Logistic Regression),简称为LR,是机器学习中的一种分类问题。常用于二分类问题。比如预测用户是否点击特定...
2019-07-25 13:40:02
3216
原创 Python编码问题详解
当你在进行读写操作出现如下报错UnicodeEncodeError: ‘utf-8’ codec can’t encode character ‘\u704f’ in position 0或者乱码,那么看这篇文章是对的什么是编码和解码计算机只认识0或1组成的二进制数,而人类只认识文字,必须要有一个从文字到0,1的映射。从文字到0,1的映射称为编码,反过来从0,1到文字叫解码编码和解...
2019-07-24 19:44:54
469
原创 pandas做统计分析
目的:了解市场上6月份男鞋销售情况import pandas as pdimport numpy as npimport matplotlib.pyplot as pltdf = pd.DataFrame(pd.read_excel('6月男鞋数据.xlsx')) #导入数据print(df.head()) #打印前5列,查看数据结构data = df.iloc[:,:19] ...
2019-02-28 18:26:39
539
转载 SQL分组统计
全国各省份人口数排前三的城市思路:先按照省份分组,再组内按照人口数排序取前三<!--mysql-->set @num = 0, @class = '';select * from ( select p.*, @num := if(@class=province, @num+1,1) as rank, @class := p.provinc...
2019-02-28 17:45:21
1137
转载 Python数据挖掘-亲和性分析
以下参考自《python数据挖掘入门与实战》1.3亲和性分析这个国内又叫做关联分析,根据样本个体之间相似度,确定他们关系的亲疏,适用于推荐商品推荐思路:人们经常同时购买两种商品,以后也会同时购买规则:如果一个人购买了商品X,那么他很可能购买Y规则优劣衡量的标准:支持度和置信度支持度(support):规则应验次数,除以规则有效下总数量,衡量的是规则应验比例。support = 同时...
2019-02-28 17:30:55
441
转载 python数据挖掘-oneR算法
以下参考自《python数据挖掘入门与实战》1.4分类已知类别的数据集,经过训练得到一个分类模型,再用模型对类别未知的的数据进行分类。比如垃圾邮件过滤器离散化:数据集的特征为连续值,算法使用类别性特征值,连续值转变为类别值,这个过程叫离散化最简单的离散化算法:确定一个阈值,低于该阈值的特征设置为0,高于阈值的值设置为1阈值计算方法之一:该特征的所有特征值的均值oneR算法对于每个特征...
2019-02-28 17:15:27
443
数据挖掘与数据化运营实战 思路、方法、技巧与应用 [卢辉][机械工业出版社][2013.06][258页][13312792].pdf
2019-06-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人