自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 问答 (2)
  • 收藏
  • 关注

原创 offer26

思路:先序遍历A的每个节点N:isSubStructure(A,B) 判断以N为根节点的子树是否包含树B:recur(A,B) 对于函数isSubStructure(A,B)当A为空或者B为空时,返回false当B为A的子树时,瞒住以下条件中的一个以节点A为根节点的子树包含树B,对应recur(A,B) 以A节点的左孩子为根节点的子树包含树B:对应isSubStructure(A.left,B) 以A节点的右孩子为根节点的子树包含树B,对应isSubStructure(A.ri...

2020-09-04 17:39:11 93

原创 offer31

public class Main { public static void main(String[] args) { int[] pushed = {1,2,3,4,5}; int[] popped = {4,3,5,1,2}; Stack<Integer> st = new Stack(); int i = 0,j = 0,n = pushed.length; boolean f = true; while(j &l...

2020-09-04 17:13:52 108

原创 leetcode433

深度优先模板/* * dfs * 终止条件 * 访问当前节点 * 下探到下一层 * visted = set() * * def(node,visited): * if node in visited: * return * * visited.add(node) * * for next_node in node.children(): * if not next_node in visited: * dfs(next.node,visited) */.

2020-09-03 22:20:28 117

原创 leetcode200

/* * 广度优先: * queue =[] * queue.append(start) * visited.append(start) * * while queue: * node = queue.pop()遍历当前层的节点 * visited.add() * * process(node) * nodes = gennertae_visited_node(node) * queue.push(nodes)//每次在队列中添加下一层的节点 */采用扩散法和沉岛..

2020-09-03 22:16:36 110

原创 leetcode55

/* * 从最后开始,记录能到达最后一个点的下标,canreach初始化为length-1 * 因为最后一个点一定可以到达最后一个点,然后从后往前遍历 * 如果当前点加上其能跳跃的值大于等于最后一个点,则该点可以到达 * 最后一个点,此时将canreach重新赋值为当前点的下标 * 表明此时当前点可以到达最后一个点 */public class Main { public static void main(String[] args) { int[] nums = {2...

2020-09-03 22:09:35 77

原创 剑指offer31

public class Main { public static void main(String[] args) { int[] pushed = {1,2,3,4,5}; int[] popped = {4,3,5,1,2}; Stack<Integer> st = new Stack(); int i = 0,j = 0,n = pushed.length; boolean f = true; while(j &l...

2020-09-03 22:06:23 67

原创 剑指offer13

深度优先搜索深度优先其实是一种递归,广度优先一般是使用队列实现的深度优先递归模板:输入当前状态i,j1.判断i,j是否越界、i、j中的元素是否不满足题目要求,i、j是否访问过,是,则返回2.将当前i、j设置为访问过3.进行递归,下探到下一层,并记录结果(不需要重复查找,则可以在此返回,需要重复查找,例如寻找某个路径,那么两条不同的路径会重复经过某个点,而机器人运动范围则只是统计坐标范围,坐标不可以重复计算)4.恢复未访问状态(如果需要重复查找的话)5.返回结果pub

2020-09-03 22:05:29 52

原创 剑指offer48

滑动窗口import java.util.HashSet;/* * 滑动窗口问题: * 1.集合有自动去重功能,当当前元素与集合中的元素重复时 * 2.删除集合末尾的 元素(一般是循环删除,直到满足条件,比如小于滑动窗口要求的大小,或者不再有重复元素), * 其中k用来记录当前集合末尾元素的下标, * 通过k可以得到末尾元素,hs的删除操作是通过元素的值来进行的 * 3.当集合中没有与当前元素重复的元素了以后,将当前元素加入集合 * 4.计算最长不重复子串的长度 */publi

2020-08-27 16:00:01 87

原创 滑动窗口最大值

方法一://思路1:填满窗口,找出当前窗口最大值,将窗口移动一格class Solution { public int[] maxSlidingWindow(int[] nums, int k) { if(k == 0|| nums==null||nums.length == 0) return new int[]{}; Deque<Integer> q = new LinkedList(); int ma = nums[0],..

2020-08-27 15:51:38 102

原创 剑指offer56-1

位运算判断时,最好采用等于0的判断方式,否则会出错/* * 思路: * 先找出两个数字不同的位置,即异或为1的位置b * 将数字分为两组,一组b为0,一组b为1 * 分别将这两组异或,得到两个不同的数字 */public class Main { public static void main(String[] args) { int[] nums = {1,2,5,2}; int res = 0; for(int i = 0;i < nu

2020-08-27 15:36:32 94

原创 直方图的最小栈解法

class Solution { public int largestRectangleArea(int[] heights) { int squar = 0; Stack<Integer> st = new Stack();存储下标 int[] tmp = new int[heights.length+2]; System.arraycopy(heights, 0, tmp, 1, heights.length)...

2020-08-27 10:58:55 100

原创 剑指offer45

/*思路:使用快排,比较字符串拼接的数字大小给定两个数字m和n,寻找一种排序方法如果凭借成的数字mn<nm,则将m排序在n的前面反之,将n排在前面*/class Solution { public String minNumber(int[] nums) { String[] st = new String[nums.length]; for(int i = 0;i < nums.length;i++) { st...

2020-08-27 10:52:04 139

原创 leetcode46

动态规划/*递推公式:设当前位置为i1.当i和i-1可以组成字母,则判断i-2是否小于0如果小于,则证明只有两位数目前,且这两位数有分开翻译和合起来翻译两种方法,因此直接dp++如果大于,dp[i] = dp[i-2]+dp[i-1]2.当i和i-1位置的数字无法组成字母,则只有单独翻译一种方法因此,dp[i] = dp[i-1]*/class Solution { public int translateNum(int num) { String st =

2020-08-27 10:43:33 99

原创 leetcode98

使用中序遍历对二叉树进行遍历,并使用一个变量记录前一个节点上二叉树的值,为了判断是否为递增的class Solution { public long k = Long.MIN_VALUE; boolean f = true; public boolean isValidBST(TreeNode root) { if(root == null) return true; //到达叶子节点时,证明完成验证,是二叉搜索树 if(f..

2020-08-27 10:35:08 119

原创 复制链表(剪枝offer35)

、class Solution { public Node copyRandomList(Node head) { HashMap<Node,Node> hm = new HashMap(); Node cur = head; //将新复制的链表放在map的value,方便找到与原节点对应的节点 while(cur != null){ hm.put(cur,new Node(cur.val))

2020-08-27 10:26:28 63

原创 计算数组的子集

计算某个数组的子集(在递归中不用for循环和visit数组,因为每个结果长度不一致,如果每个结果长度一致,比如求全排列,则需要用for和visit,但后者也可以用记录层数的方式)public class Main { public static void main(String[] args) { int[] nums = {1,2,3}; List<List<Integer>> li = new ArrayList(); fin(nu

2020-08-27 10:24:07 231

原创 2020-08-27

java:1.编译java程序的命令是javac,该命令的文件是javac.exe2.jsp表达式的写法:<%= expression %>3.3.Math.round(-11.5)为-11,四舍五入是向数值大的方向入4.float与int做除法运算时,会将int转化为float5.JPane属于容器6.PermGen是字符串常量池7.java1.8以后,接口的修饰符可以为:abstract8.file类不能读写文件,只有流类才可以9.非逃逸对象在栈上分配

2020-08-27 10:14:31 725

原创 分治计算x的n次方

分治算法代码模板divide_pro{ 问题解决 if problem is none: print result return; 处理当前逻辑,如何分成子问题 data = prepare_data(problem) subproblems = split_problem(problem,data) 调用函数,下探一层解决子问题 subres1 = divide_pro(subproblems[0]..

2020-08-26 17:00:56 902

原创 leetcode433

深度优先遍历代码模板/* * dfs * 终止条件 * 访问当前节点 * 下探到下一层 * visted = set() * * def(node,visited): * if node in visited: * return * * visited.add(node) * * for next_node in node.children(): * if not next_node in visited: * dfs(next.node,visited) *

2020-08-26 16:56:42 108

原创 leetcode200

广度优先代码模板/* * 广度优先: * queue =[] * queue.append(start) * visited.append(start) * * while queue: * node = queue.pop()遍历当前层的节点 * visited.add() * * process(node) * nodes = gennertae_visited_node(node) * queue.push(nodes)//每次在队列中添加下一层的节点 */

2020-08-26 16:50:05 110

原创 leetcode55

反向贪心贪心算法解决问题,需要问题具有最优子结构,即局部最优解,能够得到全局最优解/* * 从最后开始,记录能到达最后一个点的下标,canreach初始化为length-1 * 因为最后一个点一定可以到达最后一个点,然后从后往前遍历 * 如果当前点加上其能跳跃的值大于等于最后一个点,则该点可以到达 * 最后一个点,此时将canreach重新赋值为当前点的下标 * 表明此时当前点可以到达最后一个点 */public class Main { public static vo

2020-08-26 16:40:51 89

原创 leetcode69

使用二分查找求小于某个数字的平方根的最大整数思路:使用二分查找减少查找时间,要每次记录mid的值,否则left和right可能会大于或者小于真正的结果值class Solution { public int mySqrt(int x) { if(x == 0||x == 1) return x; int left = 1,right = x,res = -1; while(left <= right) {

2020-08-26 16:35:31 130

原创 2020-08-26

基础知识java:java中整数默认为int,浮点数默认为Double 重载函数在同一个类中,且函数名相同,参数类型或者数量不同,与返回值无关,即如果有两个函数满足前面两个条件但其中一个有返回值另外一个没有返回值,也可以认为他们是重载 因为线程的启动方式只能通过start方式才能实现多线程,手动调用run方法与普通方法没有区别,在main方法中调用run依旧是顺序执行 当初始化子类对象时,首先要加载父类的class文件进入内存、静态方法和参数是随着类的加载而执行,因此首先执行父类B的静态代

2020-08-26 16:28:09 79

原创 deep learning with pytorch——10

归一化Var是计算样本方差的函数对样本进行分类:只有20个坏索引项被设置为1!bad_indexes张量的形状与target相同,其值为0或1取决于阈值与原始target张量中的每个元素之间的比较结果:注意,新的bad_data张量有20行,与bad_index张量中有1的行数相同。它保留了全部11列。现在,您可以开始获取有关葡萄酒的信息,这些葡萄酒分为好的、中等的和不好的类别。取每列...

2020-02-21 11:36:51 143

原创 deep learning with pytorch——9

区间值、序数值和分类值:1.第一种是连续值。如果你用单位来计算或测量某物,这个值可能是一个连续的值。2.接下来是序数值。连续值的严格顺序仍然存在,但值之间的固定关系不再适用。3.最后,分类值既没有顺序也没有数字意义。只需要不同的值来区分它们。...

2020-02-20 09:08:46 115

原创 deep learning with pytorch——8

张量是PyTorch中数据的构建块。神经网络以张量作为输入,产生张量作为输出。事实上,神经网络内部和优化过程中的所有操作都是张量之间的操作,而神经网络中的所有参数(如权重和偏差)都是张量。掌握如何对张量执行操作并有效地索引它们是成功使用PyTorch等工具的关键。表格数据:在机器学习工作中遇到的最简单的数据形式是放在电子表格、CSV(逗号分隔值)文件或数据库中。无论介质是什么,这个数据都是一个...

2020-02-19 10:04:37 380

原创 deep learning with pytorch——7

将张量移动到GPU1.每一个Torch张量都可以传输到一个gpu来执行快速、大规模的并行计算。对张量执行的所有操作都由PyTorch附带的GPU特定例程执行。2.除了dtype之外,PyTorch张量还有一个设备的概念,即在计算机上张量数据的位置。下面介绍如何通过指定构造函数的相应参数在GPU上创建张量:3.相反,您可以使用to方法将在CPU上创建的张量复制到GPU:此代码返回一个新的...

2020-02-14 12:21:30 218

原创 deep learning with pytorch——6

索引张量您已经看到points[0]返回一个张量,它包含张量第一行的2D点。如果你需要一个包含除第一个点以外的所有点的张量怎么办?当使用范围索引标记时,该任务很容易1:4,表示包括1,不包括41: 表示从1到list末尾:4 表示从list开头到3:-1 表示list从开头到结尾1: 4: 2 在步骤2中从包含元素1到排除元素4可以用相同的符号来表示PyTorch张量...

2020-02-14 10:35:33 82

原创 deep learning with pytorch——5

数字类型1.张量构造函数(即张量、零和一等函数)的dtype参数指定将包含在张量中的数字数据类型。数据类型指定张量可以保存的可能值(整数与浮点数)和每个值的字节数。下面是dtype参数的可能值列表,张量中可以存储的数据类型:每个torch.float、torch.double等都有一个对应的具体类torch.FloatTensor、torch.doublensor等。torch.int8的类是...

2020-02-14 10:25:36 113

原创 deep learning with pytorch——4

大小、存储偏移量和跨步数1.为了索引到存储中,张量依赖于一些信息,这些信息连同它们的存储一起,明确地定义了它们:大小、存储偏移量和跨距(图2.5)。size(或者shape,用NumPy术语来说)是一个元组,表示张量的每个维度上有多少个元素。存储偏移量是存储中对应于张量中第一个元素的索引。跨距是存储中需要跳过的元素数,以便沿着每个维度获取下一个元素。2.通过提供相应的索引,可以获得张量中的第...

2020-02-14 10:17:00 308

原创 deep learning with pytorch——4

1.PyTorch张量是这样一个存储的视图,它能够通过使用偏移和每个维度的步长来索引到该存储。2.多个张量可以索引同一个存储,即使它们索引到数据中的方式不同。您可以在图2.4中看到一个示例。当您在最后一个片段中请求点[0]时,您得到的是另一个张量,该张量索引与点张量有相同的存储,并且具有不同的维度(1D与2D)。底层内存只分配一次,因此可以快速创建数据的可选张量视图,而不必考虑存储实例管理的数据...

2020-02-12 11:57:11 125

原创 deep learning with pytorch——3

1.可以将Python列表传递给构造函数,以达到相同的效果2.要获取第一个点的坐标:3.可以构建二维张量:4.shape函数,可以从左到右由外向内,打印出维度5.可以使用两个索引来访问张量中的元素6.也可以像以前一样访问张量中的第一个元素以获取第一个点的二维坐标:7.输出时得到的是另一个张量,但大小为2的1D张量包含点张量第一行中的值。这个输出并不意味着分配了一个新的内存块...

2020-02-11 12:13:53 99

原创 deep learning with pytorch——2

张量基础1.张量是PyTorch中的基本数据结构。张量是一个数组,是一种数据结构,存储通过索引可以单独访问并且可以用多个索引索引的数字集合。2.下面的列表显示了Python中三个数字的列表。可以使用基于0维的索引访问这个列表,还可以该表列表中数字的值3.对于处理数字向量的简单Python程序来说,使用Python列表存储向量(比如2D行的坐标)并不罕见。然而,这种做法可能不太理想,原因...

2020-02-11 11:58:00 143

原创 deep learning with pytorch-------1

序言:1.PyTorch提供了一个核心数据结构,即张量,这是一个多维数组,与NumPy数组有许多相似之处。2.对于熟悉NumPy数组的用户,PyTorch Tensor类将立即熟悉。Pythorch感觉像NumPy,但是有GPU加速和自动计算梯度,这使得它适合从正向表达式开始自动计算反向通过数据从tensor开始1.深度学习包括构建一个系统,该系统可以将数据从一种表示形式转换为另一种表示形...

2020-02-11 11:29:28 239

原创 错误集合

最近在学神经网络编程,跑程序时遇到了一些基础错误:TabError: inconsistent use of tabs and spaces in indentation一般是tab键和空格键使用不统一,要将程序前面的缩进统一改为tab或者相同数量的空格RuntimeError: input must have 3 dimensions, got 5这里涉及到维度的问题,因为我训练的神经网...

2020-02-07 11:09:43 6448

原创 权重矩阵的设置

随机产生权重矩阵有两种方式:self.w1 = (numpy.random.rand(self.hiddennode,self,inputnode)-0.5)#产生0到1之间的随机数,减0.5是使得权重有负数,实际权重范围在-1到1之间第二种更为复杂,基于统计学原理self.w1 = numpy.random.normal(0.0,pow(self.hiddennode,-0.5),(sel...

2020-01-29 17:01:18 2540

原创 准备数据

神经网络有输入层、隐藏层和输出层输入值:数据需要通过sigmoid函数,输入值在0到1内才有意义,所以输入的最小值为0加上偏移值,最大值不能大于1权重值:应该避免大的初始权重值,需要在一定范围内随机均匀的选择权重,根据连接的数量来确定权重选择的范围,比如有三条连接,那么初始权重的选择范围是-1/根号3 到 1/根号3,一个节点的传入连接越多,表明有越多的信号叠加在一起,应该减少权重的取值范围;...

2020-01-28 10:49:35 88

原创 pytroch常用函数

import torchimport torch.nn.functional as Fimport mathn1 = torch.nn.Linear(2,4)input1 = torch.randn(3,2)input2 = torch.randn(2,3)list1 = []out1 = n1(input1)out2 = F.relu(n1(input1))print('ou...

2020-01-21 10:16:52 164

原创 程序员代码面试指南——笔记1

在java中,想得到字符串str的第i个位置的字符,要使用:char p = str.charAt(i);把字符串转化为char类型的数组char[] arr = str.toCharArray();此时得到位置i的元素使用char p = arr[i];...

2019-10-03 12:19:25 134

原创 leetcode——257

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { pub...

2019-10-03 11:57:07 68

空空如也

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

TA关注的人

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