![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
代码随想录打卡
文章平均质量分 68
hndgfnd
这个作者很懒,什么都没留下…
展开
-
代码随想录-动态规划专题
有N件物品和一个最多能背重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i]。,求解将哪些物品装入背包里物品价值总和最大。原创 2024-02-02 21:15:26 · 392 阅读 · 0 评论 -
代码随想录-贪心专题
贪心算法一般分为如下四步:1、将问题分解为若干个子问题2、找出适合的贪心策略3、求解每一个子问题的最优解4、将局部最优解堆叠成全局最优解。原创 2024-01-26 11:55:22 · 428 阅读 · 0 评论 -
代码随想录day22
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。从上往下遍历,找到的第一个大于p,小于q的节点就是二者的最近的公共祖先。原创 2024-01-17 14:29:06 · 348 阅读 · 0 评论 -
代码随想录day24
如果想让回溯法高效一些,可以加一些剪枝的操作。回溯法,一般可以解决如下几种问题:1、组合问题:N个数里面按一定规则找出k个数的集合2、切割问题:一个字符串按一定规则有几种切割方式3、子集问题:一个N个数的集合里有多少符合条件的子集4、排列问题:N个数按一定规则全排列,有几种排列方式5、棋盘问题:N皇后,解数独等等。原创 2024-01-19 16:34:39 · 393 阅读 · 0 评论 -
代码随想录day23
给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L)。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。寻找符合条件的左右节点,并将符合条件的左右节点接入左右子树。原创 2024-01-18 23:13:03 · 330 阅读 · 0 评论 -
代码随想录day20
给定一个不含重复元素的整数数组。通过给定的数组构建最大二叉树,并且输出这个树的根节点。构造树一般采用的是前序遍历,每次找数组的最大值,因为先构造中间节点,然后递归构造左子树和右子树。由于每次都构造一个新数组,优化后,无需构造新数组,直接传入左右数组的下标。原创 2024-01-15 15:33:04 · 370 阅读 · 1 评论 -
代码随想录day18
给定一个二叉树,在树的最后一行找到最左边的值。原创 2024-01-13 18:34:04 · 355 阅读 · 1 评论 -
代码随想录day17
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7]返回true前置知识:(1)可以从上到下去查 所以需要前序遍历(中左右)(2)只能从下到上去查,所以只能后序遍历(左右中)根基的定义:左右子树之差不超过1,因此需要求每个节点的左右子树的,求高度应使用后序遍历,而判断时用,先判断当前节点是否满足条件,再判断左右子树是否也满足条件。原创 2024-01-12 20:55:15 · 380 阅读 · 1 评论 -
代码随想录day16
题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例: 给定二叉树 [3,9,20,null,null,15,7],做这道题之前需要先搞清楚高度与深度。,所以本题中我们通过后序求的根节点高度来求的二叉树最大深度。还可用用先序来求二叉树的深度,但是会麻烦很多,主要是左右子树都递归会重复。后序遍历:也可以认为是深度优先遍历迭代法:也可以理解为广度优先遍历,求最大深度也就是求层数。原创 2024-01-11 21:39:38 · 427 阅读 · 1 评论 -
代码随想录day15
需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。:把每一个节点的左右孩子翻转一下,就可以达到整体翻转的效果。(2)左不为空,右为空,不对称 return false左右都为空,对称,返回true。题目:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。(即逐层地,从左到右访问所有节点)。(3)左右都不为空,比较节点数值,不相同就return false。(1)左节点空,右节点不为空,不对称,return false。原创 2024-01-10 17:54:50 · 332 阅读 · 1 评论 -
代码随想录day14
梳理关于二叉树的一些知识。原创 2024-01-09 22:08:00 · 354 阅读 · 1 评论 -
代码随想录day13
题目:给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。原创 2024-01-08 18:14:33 · 349 阅读 · 1 评论 -
代码随想录day11
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。若遇到左括号就直接入栈,若遇到右括号,若栈为空就匹配失败,若不为空就弹出栈顶,进行匹配, 最后栈空时则匹配成功。原创 2024-01-06 11:23:42 · 392 阅读 · 1 评论 -
代码随想录day10
用两个栈来实现队列,一个输入栈,一个输出栈,需要注意的是弹出操作,只有当输出栈为空时,才会一次性把输入栈中的元素都压入输入栈,否则直接取输出栈的元素。原创 2024-01-05 14:38:41 · 317 阅读 · 3 评论 -
代码随想录day09
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1: 输入: haystack = "hello", needle = "ll" 输出: 2示例 2: 输入: haystack = "aaaaa", needle = "bba" 输出: -1此题为字符串匹配问题。原创 2024-01-04 12:08:27 · 427 阅读 · 1 评论 -
代码随想录day08
题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。比较简单的反转操作。原创 2024-01-03 23:16:28 · 439 阅读 · 1 评论 -
代码随想录day07
题目:给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1。此题使用的是哈希表法,首先定义 一个map,用于存放a和b两数之和,value 放a和b两数之和出现的次数。原创 2024-01-02 23:37:22 · 355 阅读 · 0 评论 -
代码随想录day06
题目:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1: 输入: s = "anagram", t = "nagaram" 输出: true示例 2: 输入: s = "rat", t = "car" 输出: false你可以假设字符串只包含小写字母。原创 2023-12-31 20:57:43 · 881 阅读 · 1 评论 -
代码随想录day04
题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换完成此题的关键在于明确指针指向的顺序,在使用指针的过程中使用多个变量容易搞错,所以直接用cur一个指针,利用它的next去定位后面的节点,然后记录已经断链的节点即可。此外,需要注意while循环的条件,如果cur后面已经没有两个节点了,就可以停止了。原创 2023-12-30 13:31:36 · 330 阅读 · 1 评论 -
代码随想录day03
在更改引用之前,还需要存储后一个节点。在删除时要注意,要找的是删除元素前一个节点pre,而且进行判断时要注意判断pre!示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL。该题为简单题,唯一需要注意的是要添加一个虚拟头结点,使整个来拿表的删除操作进行统一起来。示例 3: 输入:head = [7,7,7,7], val = 7 输出:[]原创 2023-12-29 15:31:30 · 331 阅读 · 1 评论 -
代码随想录day02
题目:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。原创 2023-12-28 14:32:28 · 928 阅读 · 1 评论 -
代码随想录day01
题目:给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。二分查找是在有序表中按值查找一个元素。区间的定义一般为两种,左闭右闭即[left, right],或者左闭右开即[left, right)。原创 2023-12-27 21:16:13 · 326 阅读 · 0 评论