自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Day17 | leetcode110. 平衡二叉树、leetcode257. 二叉树的所有路径、leetcode404. 左叶子之和

平时我们解二叉树的题目时,已经习惯了通过节点的左右孩子判断本节点的属性,而本题我们要通过节点的父节点判断本节点的属性。左叶子的明确定义:节点A的左孩子不为空,且左孩子的左右孩子都为空(说明是叶子节点),那么A节点的左孩子为左叶子节点。那是因为代码的逻辑其实是求的根节点的高度,而根节点的高度就是这棵树的最大深度,所以才可以使用后序遍历。这道题目要求从根节点到叶子的路径,所以需要前序遍历,这样才方便让父节点指向孩子节点,找到对应的路径。二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数。

2023-07-09 19:40:11 119

原创 Day16 | leetcode104. 二叉树的最大深度、leetcode559. n叉树的最大深度、leetcode111. 二叉树的最小深度、leetcode222. 完全二叉树的节点个数

二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数或者节点数(取决于高度从0开始还是从1开始)二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)而根节点的高度就是二叉树的最大深度,所以本题中我们通过后序求的根节点高度来求的二叉树最大深度。用后序遍历(左右中)来计算树的高度。

2023-07-06 10:42:07 105

原创 Day15 | 层序遍历、leetcode226. 翻转二叉树、leetcode101. 对称二叉树

【代码】Day15 | 层序遍历、leetcode226. 翻转二叉树、leetcode101. 对称二叉树。

2023-07-03 22:46:15 93

原创 Day14 | 二叉树理论基础、递归遍历(leetcode144. 二叉树的前序遍历;leetcode94. 二叉树的中序遍历;leetcode145. 二叉树的后序遍历)、迭代遍历

在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。这里前中后,其实指的就是中间节点的遍历顺序,只要大家记住 前中后序指的就是中间节点的位置就可以了。看如下中间节点的顺序,就可以发现,中间节点的顺序就是所谓的遍历方式。若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;

2023-07-03 16:59:51 113

原创 Day09 | leetcode28. 实现 strStr()、leetcode459. 重复的子字符串、字符串总结、双指针回顾

leetcode459. 重复的子字符串字符串总结https://programmercarl.com/%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%80%BB%E7%BB%93.htmlhttps://programmercarl.com/%E5%8F%8C%E6%8C%87%E9%92%88%E6%80%BB%E7%BB%93.html

2023-07-02 14:57:08 60

原创 Day08 | leetcode344. 反转字符串、leetcode541. 反转字符串II、剑指Offer 05.替换空格、leetcode151. 翻转字符串里的单词、剑指Offer左旋转字符串

【代码】Day08 | leetcode344. 反转字符串、leetcode541. 反转字符串II、剑指Offer 05.替换空格、leetcode151. 翻转字符串里的单词、剑指Offer左旋转字符串。

2023-07-02 14:55:42 70

原创 Day07 | leetcode454. 四数相加II 、leetcode383. 赎金信 、leetcode15. 三数之和 、leetcode18. 四数之和、哈希表专题总结

哈希表数据结构和python的对应:记住:ord()not。

2023-06-30 11:20:53 48

原创 Day05 | 哈希表理论基础、leetcode242. 有效的字母异位词、leetcode349. 两个数组的交集、leetcode202. 快乐数、leetcode1. 两数之和

哈希函数(Hash function):把学生的姓名直接映射为哈希表上的索引,然后就可以通过查询索引下标快速知道这位同学是否在这所学校里了。这题用python来写也方便好多,我把两个方法写在一块了,其中法二原本只用两行代码就能解决,这里展开来了,方便我在本地IDE上debug。刷题和笔试下来,感觉还是用python写更方便,重点会更多的放在对算法的理解上面,于是之后都先用python写算法题了。法一利用了python的Counter包,使得这题更加方便解决。法二则是python的常规解法,重在逻辑。

2023-06-30 00:07:58 40

原创 Day04 | leetcode24. 两两交换链表中的节点、leetcode19. 删除链表的倒数第N个节点、leetcode160. 链表相交、leetcode142. 环形链表II、链表专题总结

这题和反转链表有相似之处,同样可以用循环模拟做出,也能用递归法。注意点:这题的递归法主要参考了力扣上的画解算法,并结合自己在本地IDE上逐步debug才能较好的理解递归(桟或树)。递归写法要观察本级递归的解决过程,形成抽象模型,因为递归本质就是不断重复相同的事情。而不是去思考完整的调用栈,一级又一级,无从下手。如图所示,我们应该关注一级调用小单元的情况,也就是单个 f(x)。其中我们应该关心的主要有三点:返回值调用单元f(x)做了什么终止条件在本题中:返回值:交换完成的子链表(从后往前);调

2023-06-26 21:58:41 79

原创 Day03 | 链表理论基础、leetcode203. 移除链表元素、leetcode707. 设计链表、leetcode206. 反转链表

手写链表// 单链表 public class ListNode {// 节点的值 int val;// 下一个节点 ListNode next;// 节点的构造函数(无参) public ListNode() {} // 节点的构造函数(有一个参数) public ListNode(int val) {} // 节点的构造函数(有两个参数) public ListNode(int val , ListNode next) {} }

2023-05-21 22:21:06 134

原创 Day02 | leetcode977. 有序数组的平方、leetcode209. 长度最小的子数组、leetcode59. 螺旋矩阵II、数组专题总结

二分法;(循环不变量原则:只有在循环中坚持对区间的定义,才能清楚的把握循环中的各种细节)双指针法;(快慢指针法:通过一个快指针和慢指针在一个for循环下完成两个for循环的工作;相向双指针)滑动窗口法;(重点是理解滑动窗口如何移动窗口起始位置,并达到动态更新窗口大小的条件)模拟法;(真正解决题目的代码都是简洁的,或者有原则性的)为了更好地写代码和保留自己的做题轨迹,我再本地IDE上专门建立了一个代码随想录的代码文件夹,里边会存放着未来2个月的刷题代码和注释,如下图所示。

2023-05-14 23:18:16 98

原创 【强化学习】个人总结08——基于模型的学习和规划

前面几章介绍的表格式或基于近似函数的 RL 方法可以直接学习状态价值或策略函数来解决多数 RL 问题,在这些学习方法中,个体并不试图去理解环境动力学。如果能够建立一个可以较为准确地模拟环境动力学特征的模型,或者问题的模型类似与一些规则明确简单的棋类游戏,那么 agent 就可以通过构建这样的模型来模拟其与环境的交互过程,而这种依赖模型而不实际与环境交互的过程可以类比于“思考”过程。agent 通过思考可以对问题进行规划,在与环境实际交互时搜索交互可能产生的各种后果,并从中选择对个体有利的结果。

2023-05-11 11:51:04 96

原创 【强化学习】个人总结06——价值函数的近似表示

前几章介绍的几个强化学习算法都属于查表式 (table lookup) 算法,其特点在于每一个状态或行为价值都用一个独立的数据进行存储,整体像一张大表格。这种算法多用于解决规模较小的 RL 问题,而遇到状态或行为数量巨大甚至是连续的问题时,算法效率就会很低,甚至会无法得到较好的解决。因此就需要引入新的解决方法来求解那些状态数量多或者是连续状态的 RL 问题。

2023-05-11 11:50:57 160

原创 【强化学习】个人总结07——基于策略梯度的深度强化学习

在行为空间规模庞大或者是连续行为的情况下,除了上一章基于价值的强化学习,我们还可以直接进行策略的学习。

2023-05-11 11:50:40 198

原创 【强化学习】个人总结09——探索与利用

之前章节的理论知识可以说是本章内容的铺垫,本章首先介绍了探索和利用这两个重要概念,然后结合多臂赌博机这一重要实例,讲解了怎样才算是一个有效的探索,随后介绍了三类常用的探索方法。

2023-05-11 11:50:15 158

原创 Day01 | 数组理论基础、leetcode704. 二分查找、leetcode27. 移除元素

这题也是二刷,虽然在不看提示的情况下最后也写出来提交AC了,但是前几次提交都通过不了,主要是没看清题目的具体意思。还有这里建议用本地IDE来做算法题(建了个随想录的文件夹,不同数据结构的题目分别放好来),一是方便debug,二是效率高(写代码有提示、运行程序比浏览器快、方便写输入测试样例等),下面除了有我力扣上的代码,也有在IDE上的代码展示。在面试笔试的时候也是这样,很多题虽做过但实现起来不顺利,没做过的能想出思路但实现不了,应该还是写代码写少了,继续加油。拓展题目(二刷再做,现在没时间)

2023-05-11 11:38:50 92

原创 【强化学习】个人总结05——不基于模型的控制

文章目录前言1. 行为价值函数的重要性2. ϵ− 贪婪策略3. 现时策略蒙特卡罗控制4. 现时策略时序差分控制4.1 Sarsa 算法4.2 Sarsa(λ) 算法4.3 比较 Sarsa 和 Sarsa(λ)5. 借鉴策略 Q 学习算法总结前言上一章主要讲了不基于模型的预测,也就是求解在给定策略下的状态价值函数或行为价值函数。而本章主要讲了在不基于模型的条件下如何通过 agent 的学习来优化价值函数,同时改善自身行为的策略以最大化收获的过程,这一过程也叫不基于模型的控制 (Model-free Co

2021-08-03 09:45:22 465

原创 【强化学习】个人总结04——不基于模型的预测

文章目录前言1. 同步动态规划(Synchronous Dynamic Programming)1.1 策略评估(policy evaluation)1.2 策略迭代(policy iteration)1.3 价值迭代(value iteration)2. 异步动态规划(Asynchronous Dynamic Programming)总结前言1. 同步动态规划(Synchronous Dynamic Programming)1.1 策略评估(policy evaluation)1.2 策略迭代(p

2021-08-03 09:40:13 447

原创 【强化学习】个人总结03——动态规划寻找最优策略

【强化学习】个人总结03——动态规划寻找最优策略前言1. 同步动态规划(Synchronous Dynamic Programming)1.1 策略评估(policy evaluation)1.2 策略迭代(policy iteration)1.3 价值迭代(value iteration)2. 异步动态规划(Asynchronous Dynamic Programming)2.1 基本概念3. 马尔可夫决策过程(Markov Decision Process,MDP)3.1 基本概念总结前言1. 同步

2021-08-03 09:39:24 1816

原创 【强化学习】个人总结02——马尔科夫决策过程

【强化学习】个人总结02——马尔科夫决策过程前言一、马尔可夫过程(Markov Process,MP)1.基本概念2.个人理解二、马尔可夫奖励过程(Markov Reward Processes,MRP)1.2.三、马尔可夫决策过程(Markov Decision Process,MDP)1.2.总结前言马尔可夫过程和马尔可夫奖励过程是马尔可夫决策过程的基础,因此先介绍前两个过程,最后再讲本文的核心马尔可夫决策过程。一、马尔可夫过程(Markov Process,MP)1.基本概念2.个人理解二

2021-08-03 09:36:55 632

原创 【强化学习】个人总结01——概述

【强化学习】个人总结01——梳理基本概念前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import nump

2021-08-03 09:35:01 268

空空如也

空空如也

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

TA关注的人

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