- 博客(13)
- 收藏
- 关注
原创 2021-05-09
class Solution { public int shortestPath(int[][] grid, int k) { //m n和题目中相反,k恒大等于1,其他都一样 int m = grid.length; int n = grid[0].length; // 非法参数处理 if (validateInputParams(k, m, n)) { return -1; }
2021-05-09 10:34:41
98
原创 背包问题总结
力扣题目1、组合问题:377. 组合总和 Ⅳ494. 目标和518. 零钱兑换 II2、True、False问题:139. 单词拆分416. 分割等和子集3、最大最小问题:474. 一和零322. 零钱兑换核心dp转移公式组合问题:dp[i] += dp[i-num]True or False问题:dp[i] = dp[i] or dp[i-num]最大最小问题:dp[i] = min(dp[i], dp[i-num]+1)或者dp[i] = max(dp[i], dp[i-nu
2021-04-24 10:01:25
104
原创 二叉树深度和平衡二叉树
返回值:当节点root 左 / 右子树的深度差≤1 :则返回当前子树的深度,即节点 root 的左 / 右子树的深度最大值 +1( max(left, right) + 1 );当节点root 左 / 右子树的深度差 > 2 :则返回 -1 ,代表 此子树不是平衡树 。终止条件:当 root 为空:说明越过叶节点,因此返回高度 0;当左(右)子树深度为 -1 :代表此树的 左(右)子树 不是平衡树,因此剪枝,直接返回 -1 ;class Solution: def isBalanc
2021-03-30 23:12:57
298
原创 树的子结构
class Solution: def isSubStructure(self, A: TreeNode, B: TreeNode) -> bool: def recur(A, B): if not B: return True if not A or A.val != B.val: return False return recur(A.left, B.left) and recur(A.right, B
2021-03-30 22:50:35
79
原创 中序后序
class Solution: def buildTree(self, inorder: List[int], postorder: List[int]) -> TreeNode: def helper(in_left, in_right): # 如果这里没有节点构造二叉树了,就结束 if in_left > in_right: return None
2021-03-30 22:34:30
139
原创 序列化反序列化
class Codec: def serialize(self, root): """ Encodes a tree to a single string. """ def postorder(root): return postorder(root.left) + postorder(root.right) + [root.val] if root else [] return ' '.join
2021-03-30 22:16:45
71
原创 前序中序重构二叉树
从前序和中序遍历重构# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def buildTree(self, preorder: List[int], inorder: List[int]) -> Tre
2021-03-30 21:47:11
126
原创 二叉树遍历
递归太简单了不写了后序遍历#后序遍历# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def postorderTraversal(
2021-03-26 15:30:00
73
原创 排序算法
总结数据结构中的排序算法(python)# 时间复杂度:o(nlogn)#快速排序def quick_sort(alist, start, end): if start >= end: return mid_value = alist[start] low = start hight = end while low < hight: while low<high and alist[high] >= m
2021-03-22 14:19:04
101
原创 训练方法1
根据导师给的一些论文资料,调整了网络框架,将隐藏层改为10-9-8-7-6-5-4-3-2-1的结构激活函数等算法不变,将网络改为收敛的形状符合线性回归的需要。根据这种模式将学习率调整为0.0001迭代次数5000次,最终得到loss率为1左右,然后利用训练数据来测试网络的预测能力测试数据这是模型的预测结果单位为0.1nm,误差在1%左右,显然网络的精准预测能力还是偏弱,但是已经初步达到...
2019-10-30 14:35:45
196
原创 算法概述
结合之前的学习经验,现在总结一下项目中线性回归会使用到的各类算法:Adam算法:Adam 算法和传统的随机梯度下降不同。随机梯度下降保持单一的学习率(即 alpha)更新所有的权重,学习率在训练过程中并不会改变。而 Adam 通过计算梯度的一阶矩估计和二阶矩估计而为不同的参数设计独立的自适应性学习率。也就是说在更新权重时,Adam算法会根据数据特点利用概率分布更新学习率。激活函数Softplu...
2019-10-21 16:22:48
169
1
原创 结构调参
根据上一次调参经验总结,将可调参数总结为迭代次数、学习率、神经元个数、神经元层数以及激活函数,以下是调参结果根据调参经验总结,迭代次数大约2000次loss下降达到瓶颈学习率过低导致loss下降速率低,学习率过高导致误差下降进入局部极值点找不到误差值最低位置,学习率初设0.001较为合理。模型框架方面,因为二维输入一维输出数据模型比较简单不应用过大过复杂的网络框架,会导致网络学习过拟合,所以调...
2019-10-19 11:23:56
176
原创 BP神经网络初学习
BP神经网络初学习tensorflow搭建神经网络根据实验室项目需要搭建了三层前向反馈神经网络尝试深度学习,刚开始利用matlab计算超越方程得到结果精度过低导致学习结果出现赋值,更改输出精度后问题解决。本结构隐藏层设置了三层,每层128个神经元激活函数为Relu,利用adam算法更新权重,误差函数选用mse,数据处理完成后开始学习,结果误差达1300多且不下降,检查代码发现输出元激活函数使...
2019-10-15 11:38:31
193
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人