4 yanglee0

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 28w+

剑指offer 25、26

25、复杂链表的复制 26、二叉搜索树与双向链表

2020-08-14 15:06:04

剑指offer 52、53、54

52、正则表达式匹配解这题需要把题意仔细研究清楚,反正我试了好多次才明白的。首先,考虑特殊情况: 1>两个字符串都为空,返回true 2>当第一个字符串不空,而第二个字符串空了,返回false(因为这样,就无法 匹配成功了,而如果第一个字符串空了,第二个字符串非空,还是可能匹配成 功的,比如第二个字符串是“a*a*a*a*”,由于‘*’之前的元素可以出现0次, 所以有可能匹配成功)之后就开始匹配第一个字符,这里有两种可能

2020-08-13 16:38:42

动态规划理解

1. 从一个生活问题谈起2. 几个简单的概念3. DP的典型应用:DAG最短路4. 对DP原理的一点讨论5. 例题:最长上升子序列

2020-08-13 15:50:18

剑指offer 41、42

41、和为S的连续正数序列考虑用滑动窗口,知识补充:1、什么是滑动窗口?顾名思义,首先是一个窗口,既然是一个窗口,就需要用窗口的左边界i和右边界j来唯一表示一个窗口,其次,滑动代表,窗口始终从左往右移动,这也表明左边界i和右边界j始终会往后移动,而不会往左移动。这里我用左闭右开区间来表示一个窗口。比如2、滑动窗口的操作扩大窗口,j += 1缩小窗口,i += 1算法步骤:– 初始化,i=1,j=1, 表示窗口大小为0– 如果窗口中值的和小于目标值sum, 表示需要扩大窗口,j +=

2020-08-12 21:58:39

剑指offer 57、58、59、60

57、58、59、60、

2020-08-11 09:38:26

剑指offer 46、47、48

46、圆圈中最后剩下的数解法1:找规律。首先定义最初的n个数字(0,1,…,n-1)中最后剩下的数字是关于n和m的方程为f(n,m)。在这n个数字中,第一个被删除的数字是(m-1)%n,为简单起见记为k。那么删除k之后的剩下n-1的数字为0,1,…,k-1,k+1,…,n-1,并且下一个开始计数的数字是k+1。相当于在剩下的序列中,k+1排到最前面,从而形成序列k+1,…,n-1,0,…k-1。该序列最后剩下的数字也应该是关于n和m的函数。由于这个序列的规律和前面最初的序列不一样(最初的序列是从0开始的

2020-08-09 17:10:59

剑指offer37、38、39

37、数字在排序数组中出现的次数适用于初学者的解法方法:暴力循环法。对数组进行遍历,如果遍历中的数组的值等于k,则计数+1# -*- coding:utf-8 -*-class Solution: def GetNumberOfK(self, data, k): # write code here count = 0 for i in range(len(data)): if data[i]==k:

2020-08-09 14:02:00

剑指offer64、32、35、40 数组

64、滑动窗口的最大值32、把数组排成最小的数1.先要判断输入数组是否是空2. 把原来的数组变成一个字符串数组3.定义一个比较的规则:例如[“3”,“32”]中332>323,所以要将3和32的位置调换,对于有三个数字的情况:对于有三个数字的情况: [3,32,321],首先将3和32进行调换,变为[32,3,321],然后这里用的是冒泡排序的做法,再将32与321进行组合,因为32132<32321,所以将32与321进行调换,接着,332>323,所以将3与32调换,最后[

2020-08-07 19:46:49

查找 剑指offer6 旋转数组的最小数字

# -*- coding:utf-8 -*-class Solution: def minNumberInRotateArray(self, rotateArray): # write code here if len(rotateArray)== 0: return 0 for i in range(len(rotateArray)): if rotateArray[i]>rotateArra.

2020-08-07 19:40:02

XGBOOST常见问题以及面试题

1. 树该怎么长很有意思的一个事是,我们从头到尾了解了xgboost如何优化、如何计算,但树到底长啥样,我们却一直没看到。很显然,一棵树的生成是由一个节点一分为二,然后不断分裂最终形成为整棵树。那么树怎么分裂的就成为了接下来我们要探讨的关键。对于一个叶子节点如何进行分裂,XGBoost作者在其原始论文中给出了一种分裂节点的方法:枚举所有不同树结构的贪心法不断地枚举不同树的结构,然后利用打分函数来寻找出一个最优结构的树,接着加入到模型中,不断重复这样的操作。这个寻找的过程使用的就是贪心算法。选择一个fea

2020-08-06 10:15:52

剑指offer 19、28、29、30

19、28、29、30、

2020-08-05 22:53:45

XGBOOST理论理解

Xgboost属于集成算法。复习一下:1、 xgboost树的定义举个例子,我们要预测一家人对电子游戏的喜好程度,考虑到年轻和年老相比,年轻更可能喜欢电子游戏,以及男性和女性相比,男性更喜欢电子游戏,故先根据年龄大小区分小孩和大人,然后再通过性别区分开是男是女,逐一给各人在电子游戏喜好程度上打分,如下图所示。就这样,训练出了2棵树tree1和tree2,类似之前gbdt的原理,两棵树的结论累加起来便是最终的结论,所以小孩的预测分数就是两棵树中小孩所落到的结点的分数相加:2 + 0.9 =

2020-08-05 15:46:00

剑指offer 22、23、24

22、23、24、

2020-08-04 09:45:13

剑指offer 17、18

17、 树的子结构18、二叉树的镜像

2020-08-03 20:31:19

剑指offer 43、44、45

43、44、反转单词顺序列牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?思路:以空格为分界符,切分字符串可以得到一个字符串数组,对数字逆序遍历进行拼接。# -*- coding:utf-

2020-07-31 15:34:27

GRU原理理解

1. 什么是GRUGRU(Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network, RNN)的一种。和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的。GRU和LSTM在很多情况下实际表现上相差无几,那么为什么我们要使用新人GRU(2014年提出)而不是相对经受了更多考验的LSTM(1997提出)呢。在我们的实验中选择GRU是因为它的实验效果与LSTM相似,但是更易于计算。简单来说就

2020-07-30 17:13:02

LSTM原理详解

0. 从RNN说起循环神经网络(Recurrent Neural Network,RNN)是一种用于处理序列数据的神经网络。相比一般的神经网络来说,他能够处理序列变化的数据。比如某个单词的意思会因为上文提到的内容不同而有不同的含义,RNN就能够很好地解决这类问题。1. 普通RNN先简单介绍一下一般的RNN。其主要形式如下图所示(图片均来自台大李宏毅教授的PPT):2. LSTM2.1 什么是LSTM长短期记忆(Long short-term memory, LSTM)是一种特殊的RNN,

2020-07-30 16:09:29

剑指offer 5、20、21、44

5、20、21、44、

2020-07-28 11:05:09

RNN循环神经网络(非常好理解)

神经网络可以当做是能够拟合任意函数的黑盒子,只要训练数据足够,给定特定的x,就能得到希望的y,结构图如下:将神经网络模型训练好之后,在输入层给定一个x,通过网络之后就能够在输出层得到特定的y,那么既然有了这么强大的模型,为什么还需要RNN(循环神经网络)呢?**为什么需要RNN(循环神经网络)**他们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。比如,当我们在理解一句话意思时,孤立的理解这

2020-07-27 10:41:27

剑指offer 7、8、9

7、大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n<=39斐波那契数列的标准公式为:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N)*public class Solution { public int Fibonacci(int n) { if(n<=1){ return n; } return F

2020-07-23 09:46:17

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。