自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码训练营 Day 29 | 回溯 05

因为排列问题,每次都要从头开始搜索,例如元素1在[1,2]中已经使用过了,但是在[2,1]中还要再使用一次1。当收集元素的数组path的大小达到和nums数组一样大的时候,说明找到了一个全排列,也表示到达了叶子节点。一定要用used数组,跟之前组合不一样,组合是可选used数组也可以直接(i-1)==(i)中的最后一个元素,如果是,则表示当前元素不应该被考虑,因为它会导致重复的子序列。而本题求自增子序列,是不能对原数组进行排序的,排完序的数组都是自增子序列了。跟之前的题目不同在于,多了一个去重的过程。

2024-01-01 01:28:36 721

原创 代码随想录 Day 28 |回溯 04

跟组合总和2很像,也是通用可以用used数组,如果直接用startIndex会比较抽象。如果把 子集问题、组合问题、分割问题都抽象为一棵树的话,自己写的时候很多时候忘记加self。其实只要意识到这是切割问题,点达到了四个就是终止条件。3.1 用used数组。

2023-12-27 01:08:40 315

原创 代码训练营 Day 27 | 回溯 03

从树形结构的图中可以看出:切割线切到了字符串最后面,说明找到了一种切割方法,此时就是本层递归的终止条件。本题是 集合里元素可以用无数次,那么和组合问题的差别 其实仅在于 startIndex上的控制。给定的数字取值有没有要求(能不能重复取,还是限制了取数的个数(只能取5个))给定的数字有没有范围(例如1-9,还是正整数,还是有0/负数的情况)[startIndex, i] 就是要截取的子串。首先判断这个子串是不是回文,如果是回文,就加入在。中,path用来记录切割过的回文子串。深度上可以,广度上需要去重。

2023-12-22 02:18:27 925

原创 代码训练营 Day 25 | 回溯 02

区别之一就是集合固定的就是9个数[1,...,9],所以for循环固定i<=9。首先要取index指向的数字,并找到对应的字符集(手机键盘的字符集)。1)如何映射How to map。

2023-12-21 01:00:32 348

原创 代码训练营 | Day 24 回溯01

记得把result也要pushback,意思是此时用result二维数组,把path保存起来,并终止本层递归。

2023-11-27 05:07:57 368

原创 代码训练营 | Day 23 二叉树 09

这种情况要把3的左接上2返回的。

2023-11-25 03:08:04 336

原创 代码训练营 | Day 22 二叉树 08

所以当我们从上向下去递归遍历,第一次遇到 cur节点是数值在[q, p]区间中,那么cur就是 q和p的最近公共祖先。

2023-11-23 09:50:34 31

原创 代码训练营 | Day 21 二叉树07

二叉搜索树可是有序的。遇到在二叉搜索树上求什么最值啊,差值之类的,就把它想成在一个有序数组上求最值,求差值,这样就简单多了。还可以在遍历的时候就把最小值计算。

2023-11-22 16:17:20 20

原创 刷题记录6天题打卡

所以这道题目使用哈希法,来判断这个sum是否重复出现,如果重复了就是return false, 否则一直找到sum为1为止。这道题目,主要要学会使用一种哈希数据结构:unordered_set,这个数据结构可以解决很多类似的问题。和上一题的区别是,上一题子集中题目没有给有重复元素,但是这题可以有重复元素。,这样就把这棵树全遍历完了,一般来说,搜索叶子节点就是找的其中一个结果了。不知道关键的循环逻辑,更新index和index+-1,看答案了。而这道题目没有限制数值的大小,就无法使用数组来做哈希表了。

2023-11-07 08:29:36 73

原创 前端学习记录

javascriptprototype chain图中由相互关联的原型组成的链状结构就是原型链,也就是蓝色的这条线。JavaScript深入之从原型到原型链 · Issue #2 · mqyqingfeng/Blog · GitHubJavascript 博客:GitHub - mqyqingfeng/Blog: 冴羽写博客的地方,预计写四个系列:JavaScript深入系列、JavaScript专题系列、ES6系列、React系列。

2023-10-29 16:07:28 36 1

原创 代码训练营DAY20 | 二叉树part 06

思路:for()index > 0。

2023-10-16 12:59:43 72 1

原创 代码训练营 DAY 18 | 二叉树 part05

对比一下找所有路径、找到达数字的路径、到达数字的所有路径。看懂了,手不会写,先记答案吧。用层序循环模板改改就行。

2023-10-08 14:32:35 39 1

原创 代码训练营 DAY 17 | 二叉树04

跟其他题目不一样的地方:这次在parent node就需要判断是否有left child, and at the same time, the left child's left child and right child both are none.use post order traversal: 只要把左子树的结果+右子树的结果加起来就是根节点之和。一定要用后续遍历 LRD Post-Order Traversal。后序遍历是先求最小左右孩子节点,再返回高度+1,继续层层往上+1。

2023-10-08 06:33:58 37 1

原创 代码训练营 DAY16 | 二叉树03

跟for _ in range(len(queue))又是可以用BFS写的,怎么感觉BFS秒杀一切。3、完全二叉树的节点个数。都可以用层序排序BFS。1、二叉树的最大深度。2、二叉树的最小深度。

2023-10-05 14:51:05 32

原创 代码随想录 DAY15 | 二叉树02

把每一层的size记录下来,在queue里,根据size--弹出元素,并且在弹出的时候加入这个节点的左右孩子进入队列。二叉树中的前中后序遍历就是图论里的深度搜索,层序遍历就是广度搜索。思路:最后反转result数组。层序遍历就是一层一层搜索。明天再来做吧,今天太累了。

2023-10-02 11:53:05 44 1

原创 代码训练营 Day 13 | 二叉树01

因为是深度搜索,所以在继续往下搜索的时候,例如1——>遇到了null,后面没有数组了,就返回。左:traversal ((cur -> left, vec );递归遍历(前序遍历144、中序遍历145、后序遍历94)中:vec.push ( cur -> val );对于二叉树来说一般不太多,大多数都是传入。1、确定递归函数的参数返回值。把value放进vec数组里。3、确定单层递归的逻辑。(用于存储遍历结果)

2023-09-18 13:32:31 36

原创 代码训练营 Day 11 | 栈与队列 02

重点⚠️ 如果遇到(就要放进),要放进对应的符号。重点:可以把字符串逆转来添加。

2023-09-10 12:50:48 37 1

原创 代码训练营DAY 10 |栈和队列01

重要的代码:stack_out.append(stack_in.pop())思路:把size-1个元素取出来再重复加入,这样就能找到最后一个元素了。队列queue是先进先出,栈stack是先进后出。让out的stack 用逆序装 in的stack。⚠️难点是理解pop。

2023-09-10 11:08:55 39 1

原创 论坛项目 | Day1

maven可以配置镜像仓库,但是目前笔者在国外,先不考虑配置阿里云的仓库,但是如果后期慢点话可以在1.2配置安装环境 8分钟后看如何配置。终端输入:/usr/libexec/java_home -V。-本地仓库:默认说~/.m2/repository。集成开发工具:IntelliJ IDEA。-远程仓库:中央仓库、镜像仓库、私服仓库。应用服务器:Apache Tomact。构建工具:Apache Maven。数据库:MySQL、Redis。Maven仓库:存放构建的位置。找设置mac环境变量。

2023-09-06 13:44:35 46 1

原创 代码训练营 Day 8 | 字符串part01

其实在遍历字符串的过程中,只要让 i += (2 * k),i 每次移动 2 * k 就可以了,然后判断是否需要有反转的区间。一些同学可能为了处理逻辑:每隔2k个字符的前k的字符,写了一堆逻辑代码或者再搞一个计数器,来统计2k,再统计前k个字符。因为要找的也就是每2 * k 区间的起点,这样写,程序会高效很多。最近开学作业太忙了,现在先慢慢补前几天的题目打卡。自己写的有点问题,还是不看了,去看别人的参考答案。

2023-09-03 05:21:57 30

原创 代码训练营 Day7 | 哈希表02

key放a和b两数之和,value 放a和b两数之和出现的次数。

2023-08-30 00:36:57 39

原创 代码训练营Day6 | 哈希表01

省略版回顾:哈希表是一个类似数组的东西,方便查询,哈希函数是把名字变为索引的函数,有可能出现哈希碰撞,解决方法是拉链法,一个索引对应两个值在后面跟着 / 线性探测法。## 遍历可迭代对象(如列表、元组、字符串等),同时获取元素的索引(下标)和对应的值。## enumerate() 是一个内置函数,在 Python 中用于。## 它返回一个包含 (index, value) 元组的迭代器。## 这个函数在需要同时获取元素和其下标的情况下非常有用。例如要查询一个名字是否在这所学校里。里的时候,就要考虑哈希法。

2023-08-29 13:01:12 35 1

原创 代码训练营 Day3 | 链表01

删除链表节点要分,如果是第一个链表节点,那就不好删,如果中间的节点,就要让前一个的next指向后后一个节点的head以此跳过中间的节点。所以如果是普通的删除方法,就要进行一个判断看看是不是头节点。注意⚠️如果我们要删除一个元素1 -- > 2 --> 3例如我们要删除2,我们一定要知道。学链表了,好不熟悉好难啊感觉,先把链表和数组做一个对比吧。的,如果想改动数组的长度,就需要重新定义一个新的数组。的,并且可以动态增删, 适合数据量不固定,频繁增删,在定义的时候,长度就是。指的是什么,也就是1。

2023-08-28 12:45:38 57

原创 代码训练营day2 | 数组2

时间复杂度为O(n)+O(nlogn) 【你用的排序方法的复杂度】ps:python不用申明变量、、、sos这么简单的吗,,好吧!注意Python中的列表索引从0开始,所以不需要使用。既然有序,说明可以从头和尾巴开始一一对比。计算每个元素的平方,并将结果添加到。使用双指针法的重点是这道题目是。977.有序数组的平方。来生成索引的范围,然后通过。组成的新数组,要求也按。python里是这样写的。在这个示例中,我们使用。

2023-08-28 06:19:49 64

原创 算法第一天 代码训练营day1

还没跑通,周末检查,好久没写python了好多语法都忘了。简单写一下因为时间有点来不及了周末再编辑。1、二分查找 题目号码704。2、移除元素 暴力解法。

2023-08-24 13:11:16 44 1

原创 java 用循环来计算一个分式套分式的算法

算法学习记录,使用循环(而不是迭代)来计算这个式子;新手,有错误请指出System.out.print("输入n:"); int n = new Scanner(System.in).nextInt(); double r1=0,r2=0,r=n; int i=0; //定义变量 for( i=n; i>=1; i--) { r1 = 1/r; //主要大除法 //这里在n==1时,一定要有..

2022-03-26 15:25:38 56

原创 判断两个矩形是否重叠、包含情况 java

###### 新手小白学习java,遇到需要求解让用户输入两个矩形的坐标和长宽来判断两个矩形的相交情况,浅记录一下这个算法###### public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("输入第一个矩形的x, y, width and height :"); double x1 = input.nextDouble(

2022-03-18 23:07:25 646

空空如也

空空如也

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

TA关注的人

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