自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 js设计链表

初始化 MyLinkedList 对象。获取链表中下标为 index 的节点的值。如果下标无效,则返回 -1。将一个值为 val 的节点插入到链表中第一个元素之前。在插入完成后,新节点会成为链表的第一个节点。将一个值为 val 的节点追加到链表中作为链表的最后一个元素。将一个值为 val 的节点插入到链表中下标为 index 的节点之前。如果 index 等于链表的长度,那么该节点会被追加到链表的末尾。如果 index 比长度更大,该节点将 不会插入 到链表中。

2023-05-27 23:56:51 371 1

原创 【动态规划part05】最后一块石头的重量,目标和,一和零

有一堆石头,每块石头的重量都是正整数。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x!= y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头最小的可能重量。如果没有石头剩下,就返回 0。解题思路:尽量将石头分成重量相同的两堆,相撞之后石头最小,

2023-08-04 00:02:37 132

原创 【动态规划part4】分割等和子集

给你一个 只包含正整数 的 非空 数组 nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。题解: 两个子集元素和相等,相当于将数组nums的总和平分,当总和为奇数时一定不满足条件返回false;解释:数组可以分割成 [1, 5, 5] 和 [11]。输入:nums = [1,5,11,5]

2023-07-22 00:23:51 150

原创 【动态规划part03】整数拆分,不同的二叉搜索树

2.递推公式:dp[i] += dp[以j为头结点左子树节点数量]*dp[以j为头结点右子树节点数量],j相当于头结点的元素,从1遍历到i为止;4.确定遍历顺序:dp[i]是依靠dp[i-j]的状态,所以遍历i一定从前向后遍历,遍历i里面的每一个数作为头结的状态,用j来遍历;3.初始化:dp[0],dp[1]无意义,初始化dp[2] = 1,拆分数字2得到最大乘积是1;4.确定遍历顺序:dp[i]是依靠dp[i-j]的状态,所以遍历i一定从前向后遍历,

2023-07-21 00:16:39 176

原创 【动态规划part2】不同路径

2.递推公式:只能有两个方向来推导出来,即dp[i - 1][j] 和 dp[i][j - 1],因为存在障碍物,当前位置(i,j)不是障碍物才满足 即。3.初始化:dp[i][0] 一定都是1,从(0,0)的位置到(i,0)的路径只有一条,同理dp[0][j] = 1;2.递推公式:只能有两个方向来推导出来,即dp[i - 1][j] 和 dp[i][j - 1];1.确定dp数组以及下标的含义:dp[i][j]表示到达(i,j)位置所有路径和;网格中的障碍物和空位置分别用 1 和 0 来表示。

2023-07-19 00:18:18 207

原创 【动态规划part1】斐波拉契数,爬楼梯,使用最小花费爬楼梯

动规五部曲

2023-07-17 23:50:45 50

原创 【贪心part1】分发饼干,摆动序列,最大子序和

贪心

2023-07-15 21:58:25 79

原创 【回溯算法part05】递增子序列,全排列

回溯

2023-07-13 18:24:26 54

原创 【回溯算法part04】复原IP地址,子集

回溯

2023-07-12 11:47:54 51

原创 【回溯算法】组合总和,分割回文串

回溯

2023-07-11 23:52:09 49

原创 【回溯part02】组合总和III,电话号码的字母组合

回溯

2023-07-09 23:38:29 103 1

原创 回溯算法(组合)

回溯

2023-07-08 17:49:35 116 1

原创 【day21】二叉搜索树的最小绝对值,二叉搜索树中的众数,二叉树的最近公共祖先

给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。解题思路1:二叉树搜索树是有序的,可转换为在一个有序数组上求最值,求差值;解题思路2:在递归中记录前一个节点的指针,比较相邻两个节点的值;2.二叉搜索树中的众数给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。如果树中有不止一个众数,可以按 任意顺序 返回。解题思路1:如果不是二叉搜索树,最直观的方法是把整个树都遍历了,用map统计概率,把频率排个

2023-07-02 18:21:33 157 1

原创 【day20】最大二叉树,合并二叉树,二叉搜索树中的搜索,验证二叉搜索树

二叉搜索树

2023-06-27 23:51:24 110 1

原创 【day18】找树左下角的值,路径总和,从中序与后序遍历序列构造二叉树

二叉树

2023-06-26 23:41:38 112

原创 Unity 父节点 子节点获取方法

父节点 子节点获取方法

2023-06-25 16:55:54 1236 1

原创 【day17】平衡二叉树,二叉树的所有路径,左叶子之和

二叉树part041.平衡二叉树2.二叉树的所有路径3.左叶子之和1.平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。输入:root = [3,9,20,null,null,15,7]输出:truevar isBalanced = function(root) { return depth(root) != -1;};var depth = function(root)

2023-06-24 21:59:28 40

原创 【day16】二叉树的最大最小深度,完全二叉树的节点个数

二叉树最大最小深度,完全二叉树节点个数

2023-06-23 14:58:11 496 1

原创 【day15】二叉树层序遍历,翻转二叉树,对称二叉树

确定单层递归的逻辑,if左子树右子树都为空返回true, 有一个为空,有一个不为空,直接判定为不对称返回false;输入:root = [3,9,20,null,null,15,7] ,输出:[[3],[9,20],[15,7]]左子树的左节点,右子树的右节点)与(左子树的右节点,右子树的左节点)相等都返回为true则该二叉树为对称二叉树;输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]输入:root = [1,2,2,3,4,4,3] 输出:true。

2023-06-22 17:34:18 54 1

原创 【day14】二叉树前中后序遍历

输入:root = [1,null,2,3] 输出:[1,2,3]输入:root = [1,null,2,3] 输出:[1,3,2]给你二叉树的根节点 root ,返回它节点值的 前序 遍历。输入:root = [1,null,2,3]输出:[3,2,1]

2023-06-22 16:43:27 60 1

原创 【day13】滑动窗口最大值

滑动窗口,队列

2023-06-16 19:46:29 66 1

原创 栈的应用(有效的括号 ,删除字符串中的所有相邻重复项 , 逆波兰表达式求值 )

2023-06-09 11:05:53 59 1

原创 js字符串

js 字符串

2023-06-02 00:23:01 30

原创 [day6]四数相加,三数之和,四数之和

双指针,三数之和,四数之和

2023-05-31 12:56:31 74

原创 【day5】js 哈希表

JavaScript 哈希表

2023-05-30 11:12:41 53

原创 【day4链表】两两交换链表中的结点,链表相交

输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3。给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。

2023-05-28 20:55:24 29 1

原创 【day3】移除链表元素

当头节点的value值等于val,要删除头结点head,那就首先将头结点指向的节点等于头结点head->next = head;方案1:要删除链表中的节点,首先要找到该节点前一个节点指向该节点的指针,将前一个节点的指点指向 该节点后指向的节点,即cur->next = cur->next->next;方案2:定义个虚拟节点指向头结点dummyHead,不用单独对头结点操作,遍历完整个链表,最终返回dummyHead->next;例:1->2->3->4->5->6,移除3得到1->2->4->5->6;

2023-05-26 20:54:54 33 1

原创 【day2数组】滑动窗口,螺旋矩阵

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0。给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。给定一个含有 n 个正整数的数组和一个正整数 target。

2023-05-25 22:04:18 85 1

原创 【day1数组】数组快慢指针,双指针运用

数组快慢指针,双指针

2023-05-24 21:21:49 186

空空如也

空空如也

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

TA关注的人

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