自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 C++ 二叉树中和为某一值的路径

#include<iostream>using namespace std;#include<vector>/**输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意:在返回值的list中,数组长度大的数组靠前)**/struct TreeNode {...

2019-07-29 21:38:35 374

原创 C++ 寻找下一个结点

#include<iostream>using namespace std;#include<vector>/**请设计一个算法,寻找二叉树中指定结点的下一个结点(即中序遍历的后继)。给定树的根结点指针TreeNode* root和结点的值int p,请返回值为p的结点的后继结点的值。保证结点的值大于等于零小于等于100000且没有重复值,若不存在后继...

2019-07-29 20:53:00 270

原创 C++ 检查是否为BST

#include<iostream>using namespace std;#include<vector>/**请实现一个函数,检查一棵二叉树是否为二叉查找树。给定树的根结点指针TreeNode* root,请返回一个bool,代表该树是否为二叉查找树。算法:二叉树是否是二叉搜索树的充分必要条件是:它的中序遍历序列是单调非递减序列用vecto...

2019-07-26 20:53:39 201

原创 C++ 输出单层结点

#include<iostream>using namespace std;/**对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过...

2019-07-26 19:52:58 200

原创 C++ 高度最小的BST

#include<iostream>#include<vector>using namespace std;/**对于一个元素各不相同且按升序排列的有序序列,请编写一个算法,创建一棵高度最小的二叉查找树。给定一个有序序列int[] vals,请返回创建的二叉查找树的高度。**/class MinimalBST {public: int b...

2019-07-26 16:44:00 290

原创 C++ 二叉树平衡检查

/**关于二叉树与图1.从无到有实现二叉树和图2.在二叉树和图中检索/查找target value二叉搜索树:binary search tree所要满足的条件:对于二叉搜索树中任意一个节点它的左子树中的所有数值都比当前节点的关键码小它的右子树中的所有节点的关键码都比当前节点的关键码大二叉搜索树的结构在一定程度上能够提高搜索效率平衡二叉树是指:对于二叉树中的任意一个节点...

2019-07-26 16:26:28 482

原创 C++ 集合栈

/**请实现一种数据结构SetOfStacks,由多个栈组成,其中每个栈的大小为size,当前一个栈填满时,新建一个栈。该数据结构应支持与普通栈相同的push和pop操作。给定一个操作序列int[][2] ope(C++为vector&ltvector&ltint>>),每个操作的第一个数代表操作类型,若为1,则为push操作,后一个数为应push的...

2019-07-26 14:47:11 259

原创 C++ 双栈排序

/**请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中。给定一个int[] numbers(C++中为vector&ltint>),其中第一个元素为栈顶,请返回排序后的栈。请注意这是一个栈,意味着排序过程中你只能访问到最后一个元素。算法:题目中说只能使用一个额外的栈解决问题,则说...

2019-07-25 15:57:59 724

原创 C++ 猫狗收容所

/**题目描述有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的。给定一个操作序列int[][2] ope(C++中为vector<vector<int>>)代表所有事件。若第一个元素为1,则代表有动物进入收容所,第二个元素为...

2019-07-25 15:10:20 1199

原创 C++ 二进制插入

/**C++中的位运算位运算是进行代码优化经常会用到的操作(1)将一个数乘以2的n次方,相当于将这个数左移n位有两个32位整数n和m,请编写算法将m的二进制数位插入到n的二进制的第j到第i位,其中二进制的位数从低位数到高位且以0开始。给定两个数int n和int m,同时给定int j和int i,意义如题所述,请返回操作后的数,保证n的第j到第i位均为零,且m的二进制位...

2019-07-24 22:04:59 535

原创 C++ 回文链表

/**请编写一个函数,检查链表是否为回文。给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。**/#include<iostream>using namespace std;struct ListNode { int val; struct ListNode *next; ListNode(int x) :...

2019-07-23 20:50:54 338

原创 C++ 链式A+B

#include<iostream>using namespace std;/**有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)算法:使用两个指针分别指向链表A和链表B的...

2019-07-23 20:21:06 294

原创 c++ 链表分割

#include<iostream>using namespace std;/**编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。算法:涉及到链表的问题一定要使用到指针(指向链表节点的指针)指针c...

2019-07-23 16:33:21 1116

原创 C++ 访问单个节点的删除

#include<iostream>using namespace std;/**实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。给定待删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true**/struct ListNode { int val; struct ListNode *next; Li...

2019-07-23 15:19:43 585

原创 C++ 链表中倒数第k个结点

/**输入一个链表,输出该链表中倒数第k个结点。涉及到链表的数据结构,通常使用指针(指向链表节点的指针)使用双指针,pointer1和pointer2,初始情况下,pointer1指向链表的首节点pointer2将会比pointer1快k步,则当pointer2走到链表尾端的时候,pointer1指向的就是链表中的倒数第k个节点**/#include<iostream&...

2019-07-23 15:01:38 304

原创 C++ 翻转子串

接下来将阅读 程序员面试金典 这本书,从而复习相应的编程题。1.数组和字符串:数组问题和字符串问题其实是相通的,因为字符串通常可以看作是字符数组,2.哈希表:与字符串和数组很相关的常常考的数据结构是哈希表,它将key映射为数组的一个索引,将对象的value存储到该索引所对应的位置上。#include<string>using namespace std;#in...

2019-07-22 22:05:36 335

原创 C++ 清除行列

#include <vector>#include<iostream>using namespace std;class Clearer {public: vector<vector<int> > clearZero(vector<vector<int> > mat, int n) { // ...

2019-07-22 21:34:46 786

原创 关于python的学习资料

https://morvanzhou.github.io/learning-steps/https://morvanzhou.github.io/tutorials/machine-learning/torch/https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/3-06-speed-up-learning/...

2019-07-22 21:34:13 144

原创 python 基本字符串压缩

# -*- coding:utf-8 -*-class Zipper: def zipString(self, iniString): # write code here if len(iniString)<=1: return iniString index=1 last_char=iniS...

2019-07-22 20:09:15 2094

原创 python 空格替换

'''请编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。给定一个string iniString 为原始的串,以及串的长度 int len, 返回替换后的string。要点:python中的字符串是不可被修改的,故而可以将字符串转换成字符数组或者使用字符...

2019-07-22 19:47:53 1180

原创 python 确定两串乱序同构

'''确定两串乱序同构给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串中的空格。给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。算法1:统计两个字符串中每个字符出现的次数(ASCII hash ...

2019-07-22 17:31:06 705

原创 python原串翻转

'''请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。'''# -*- coding:utf-8 -*-class Reverse: def reverseString(self, iniString):...

2019-07-22 16:48:39 155

原创 python 确定字符互异

# -*- coding:utf-8 -*-'''请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。保证字符串中的字符为ASCII字符。字符串的长度小于等于3000。解法1:将字符串中的每个字符与其余字符进行比较,时...

2019-07-22 16:41:16 301

原创 深度学习中的随机种子

'''深度学习代码中的随机种子深度学习网络模型中初始的权值参数通常都是初始化成随机数而使用梯度下降法最终得到的局部最优解对于初始位置点的选择很敏感为了能够完全复现作者的开源深度学习代码,随机种子的选择能够减少一定程度上算法结果的随机性,也就是更接近于原始作者的结果即产生随机种子意味着每次运行实验,产生的随机数都是相同的但是在大多数情况下,即使设定了随机种子,仍然没有办法完全复现...

2019-07-20 15:23:39 9350

原创 深度学习中的优化算法

Adam算法是最常用的自适应学习率算法。对于优化器而言,学习率显然是最为重要的超参数之一。https://zhuanlan.zhihu.com/p/32626442总结:无论是SGD系列的优化算法或者是Adam系列的优化算法,其根本的依据都是先使用反向传播算法求出损失函数相对于网络模型每层网络权值的梯度,然后再根据对于当前batch size的训练样本得到的梯度值对网络权值进行更新...

2019-07-15 21:38:10 511

原创 python 快速排序算法

'''快速排序算法一个数组有 N 个元素,使用快速排序对其进行排序输出'''def quick_sort(array,length): ''' 对输入长度为length的数组array进行快速排序算法 :param array: :param length: :return: ''' if length<=1: ...

2019-07-14 16:43:43 157

原创 C++ 二维数组中的查找

/**C++中的vector容器int size() const:返回向量中元素的个数题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。算法思路:从二维数组的左下角或者右上角开始进行查找/搜索以从数组的左下角开始查找的过程为例...

2019-07-11 14:14:27 1487

原创 leetcode 129. 求根到叶子节点数字之和

'''leetcode 129. 求根到叶子节点数字之和给定一个二叉树,它的每个结点都存放一个0-9的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明:叶子节点是指没有子节点的节点。'''# Definition for a binary tree node.c...

2019-07-10 21:58:50 173

原创 leetcode 141. 环形链表

'''leetcode 141. 环形链表给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。与链表有关的算法题通常会用到双指针或快慢指针每迭代一次,快指针faster向前走两步,慢指针slow向前走一步如果链表中不包含环状结构,则快指针一定比慢指针先到达链...

2019-07-10 21:14:17 131

原创 leetcode 144. 二叉树的前序遍历

'''leetcode 144. 二叉树的前序遍历给定一个二叉树,返回它的前序遍历。使用迭代算法实现二叉树的前序遍历'''# Definition for a binary tree node.class TreeNode: def __init__(self, x): self.val = x self.left = None ...

2019-07-09 22:30:16 144

原创 leetcode 147. 对链表进行插入排序

'''leetcode 147. 对链表进行插入排序插入排序算法的时间复杂度为 O(n**2),无需使用额外的空间'''# Definition for singly-linked list.class ListNode: def __init__(self, x): self.val = x self.next = Noneclass So...

2019-07-09 15:16:29 209

原创 leetcode 148. 排序链表

'''148. 排序链表在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。排序算法中的时间复杂度涉及到log n,都需要用到二分的策略,链表常用的排序算法是归并排序,归并排序算法的时间复杂度是 nlogn归并排序是 divide and conquer的策略,divide 递归深度 log n conquer的复杂度n首先将原始未被排序的链表划分成前...

2019-07-08 19:57:17 171

原创 leetcode 150. 逆波兰表达式求值

'''leetcode 150. 逆波兰表达式求值根据逆波兰表示法,求表达式的值。有效的运算符包括+,-,*,/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。逆波兰表达式的求值:借助栈结构扫描输入的字符串,如果遇到的字符是数字,则入栈,如...

2019-07-08 15:40:06 149

原创 leetcode 136. 只出现一次的数字

'''leetcode 136. 只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。思路:这意味着nums数组的长度只能是奇数用字典的key来存储字符,用字典的value来存储字符出现的次数'''class Solution: def singleNumber(self, nums) -> int...

2019-07-08 15:08:39 152

原创 leetcode 125. 验证回文串

'''leetcode 125. 验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。将空字符串定义为有效的回文串字符的ASCII码码值数字 0~9 48~57小写字母 a~z 97~122大写字母 A~Z 65~90python中将字符转换成其ASCII码值的函数是:ord(char)'''class Solution: ...

2019-07-07 22:03:07 169

原创 leetcode 113. 路径总和 II

'''leetcode 113. 路径总和 II给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明:叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和sum = 22, 5 / \ 4 8 / / \ 11...

2019-07-07 21:10:33 148

原创 leetcode 112 路径总和

'''leetcode 112 路径总和给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明:叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ ...

2019-07-07 20:15:05 243

原创 leetcode 111. 二叉树的最小深度

'''leetcode 111. 二叉树的最小深度给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。解法:1.递归形式(深度优先搜索)2.将递归形式改写成迭代形式(尾递归很容易被改写成迭代形式,一般需要使用栈stack)'''# Definition for a binary tree node....

2019-07-07 17:24:50 150

原创 自然语言处理之LSTM和BERT模型

Transformer:attention is all you need在序列建模和序列翻译问题中经常使用的网络模型是RNN和LSTM,GRU。RNN处理序列问题时不能并行,将RNN作为解码器时,在第t个时间节点的prediction vector将与在t-1时刻的hidden state有关系,导致计算效率很低。所提出的transformer能够捕捉短时间的局部信息和长时间的单词依赖关系,...

2019-07-06 16:38:05 8713 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除