- 博客(43)
- 收藏
- 关注
原创 算法题day49(6.4打卡:dp08)
2.leetcode题目 122.买卖股票的最佳时机II。1.leetcode题目 121.买卖股票的最佳时机。
2024-06-24 22:34:34
344
原创 算法题day48(补6.3日卡:dp07)
有N种物品和一个容量为V 的背包。第i种物品最多有Mi件可用,每件耗费的空间是Ci ,价值是Wi。求解将哪些物品装入背包可使这些物品的耗费的空间 总和不超过背包容量,且价值总和最大。其实就是变相的01背包问题。2.leetcode题目。3.leetcode题目。4.leetcode题目。
2024-06-21 18:11:34
276
原创 卡码网京东模拟笔试(2023京东真题)
已知共有 n 种症状和 m 种药,第 i 种药可以治疗一些症状,但可能会导致一些副作用,添加一些新的症状。小红依次服用了一些药,请你告诉小红,当她每次服用一副药时,当前还有多少症状?所谓“夹吃棋”,即如果存在一个白子,它的两侧 (横向或者纵向)相邻都是黑子,则这个棋子将被“夹吃”,对于黑棋亦然。如果一个棋盘的局面没有一方被夹吃,或者黑白双方都被对面夹吃,则认为是平局。如果只有一方夹吃了另一方,则认为夹吃方赢,被夹吃方输。小红执黑棋,小紫执白棋,现在给定一个局面,请你判断当前棋局是谁获胜。
2024-06-21 10:24:19
248
原创 算法题day45(补5.31日卡:动态规划05)
完全背包和01背包问题唯一不通过的地方就是,每种物品有无限件。2.leetcode题目。3.leetcode题目。
2024-06-18 23:18:44
231
原创 算法题day43(补5.29日卡:动态规划03)
③初始化:dp[i][0]=0 for i in range(len(weight)(容量为0,装不了东西)①状态转移方程:dp[j] = max(dp[j],dp[j - weight[i]] + value[i])第i件物品的重量是weight[i],得到的价值是value[i]。①dp[i][j]的含义:从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。放物品:此时dp[i-1][j-weight[i]+value[i]不放物品:此时dp[i][j]=dp[i-1][j]
2024-06-13 20:21:07
273
原创 算法题day41(补5.27日卡:动态规划01)
一、动态规划基础知识:在动态规划中每一个状态一定是由上一个状态推导出来的。1.确定dp数组 以及下标的含义。1.leetcode题目。2.leetcode题目。3.leetcode题目。3.dp数组如何初始化。5.举例推导dp数组。debug方式:打印。
2024-06-11 22:32:58
234
原创 算法题day37日(补5.23日卡:贪心算法day4)
这题我没想出来,好像套路就是贪心的题目有组合的顺序的,先按照其中一个排序,再推出下一步。2.leetcode 题目。1.leetcode题目。3.leetcode题目。注意更新箭挨得最近的爆破点。我觉得我写的代码有点蠢。
2024-06-01 19:40:06
489
原创 算法题day36(补5.22日卡)
感觉这道hard题不太像hard题。1.leetcode题目。2.leetcode题目。3.leetcode题目。
2024-06-01 16:57:49
230
2
原创 算法题day35(补5.21卡)(以后天数按大部队的来,周日不写题)
1.leetcode题目。2.leetcode题目。3.leetcode题目。
2024-05-30 23:26:23
192
原创 算法题day32(补5.20日卡)
(这些题目都是二刷了,感觉比第一次做起来顺手很多)每一步都想着做到最好 想以此来达到全局最优的效果。1.leetcode题目。2.leetcode题目。3.leetcode题目。
2024-05-30 21:27:03
191
原创 算法题day30(补卡5.18日卡)
3.子集问题:一个N个数的集合里有多少符合条件的子集。1.组合问题:N个数里面按一定规则找出k个数的集合。2.切割问题:一个字符串按一定规则有几种切割方式。如果是针对有重复元素的数组,需要双重去重。5.棋盘问题:感觉很难 二刷的时候再做一次。切割问题暂时没发现需要去重。
2024-05-30 12:53:03
288
原创 算法题day30(补5.17日卡)
因为每一次横向遍历都需要遍历从一整个nums开始 所以没有Index。还有 需要注意的点是剪枝的时候。1.leetcode题目。2.leetcode题目。3.leetcode题目。
2024-05-29 23:44:16
200
原创 算法题day25(补5.15日卡)
刚开始写了个错误版本:(没有看见candidates有重复字符串)想清楚上一道题目这题就很轻松了。1.leetcode题目。2.leetcode题目。3.leetcode题目。
2024-05-28 23:02:31
160
原创 算法题day23(补5.13日卡)
回溯算法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度就构成了树的深度。优化版(通过剪枝):(就是剪掉了横向遍历过程中长度已经不满足搜索出path所需要的长度的节点)2.如何理解:(回溯算法像是递归里面嵌套着for循环)回溯三部曲:(个人觉得就是N叉树的遍历)1.letcode题目。
2024-05-27 22:46:02
315
原创 算法题day21(补5.11日卡)
先复习一下二叉树搜索的性质:设x是二叉搜索树中的一个结点。如果y是x左子树中的一个结点,那么y.key≤x.key。如果y是x右子树中的一个结点,那么y.key≥x.key。1.leetcode题目。2.leetcode题目。3.leetcode题目。
2024-05-26 22:36:27
196
原创 算法题day20(补5.10日卡)
解决:这题需要充分考虑被删除节点的左右节点的安置情况。1.leetcode题目。2.leetcode题目。3.leetcode题目。
2024-05-22 23:18:33
236
1
原创 算法题(day19补5.9日卡)
前段时间一直在忙参加学术会议做oral presentation的事情,把算法题落下了,现在来女娲补天了。思路:后序遍历(左右中)就是天然的回溯过程,可以根据左右子树的返回值,来处理中节点的逻辑。1.leetcode题目。2.leetcode题目。3.leetcode题目。一、leetcode刷题。
2024-05-21 23:28:59
284
原创 算法题day16(补5.6的卡)
①一颗高度平衡的二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的的绝对值不超过1。(求深度适合用前序遍历 求高度适合用后序遍历)迭代:(个人觉得迭代比递归好思考)
2024-05-07 21:55:43
231
原创 算法题day15(补5.5日卡)
①递归思路:(本题的思路很重要):对于二叉树是否对称,要比较的是根节点的左子树和右子树是不是相互翻转的,其实要比较的是两个树,所以在递归遍历的过程中,也是要同时遍历两棵树。递归三部曲:确定递归函数的参数和返回值、确定终止条件、确定单层递归的逻辑。②迭代法:(注意不是层序遍历)一、leetcode刷题。
2024-05-07 18:50:19
258
原创 算法题day13(补卡4.30号,51-5.3放假):
除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。(也就是说最下面的节点不可能存在右节点,不存在左节点的情况)①顺序存储:用数组的方式存储二叉树。如果父节点的数组下标是i,那么它的左孩子就是i*2 + 1,右孩子就是i*2 + 2.如果一棵二叉树只有度为0的节点和度为2的节点,并且度为0的节点在同一层上,则这棵二叉树为满二叉树。①深度优先遍历:前序遍历(中左右)、中序遍历(左中右)、后序遍历(左右中)性质:它是一棵空树或它的左右两个子树的高度差的。
2024-05-04 21:34:54
467
原创 算法题day12:
思路:①可用暴力解法②窗长固定 一进一出 容易想到队列 并且需要求窗内的最大值 可想到单调队列。今日需加强学习heapq用法 sorted用法 注意val,key的位置.的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。(发文章以来第一次做hard题,还有点小紧张)滑动窗口每次只向右移动一位。,请你返回其中出现频率前。(注意heapq的优先级是。
2024-04-29 23:28:25
190
原创 算法题day11
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。,这是能让孩子们满足胃口的饼干的最小尺寸;注意:python中的除法用法 与题目中的不一致。解决:(注意if条件 和最后的返回值)④将局部最优解堆叠成全局最优解。①将问题分解为若干个子问题。③求解每一个子问题的最优解。,我们可以将这个饼干。②找出适合的贪心策略。
2024-04-27 23:16:45
476
2
原创 算法题day9(补昨日的卡)
2.主要思想:当出现字符串不匹配时,利用已经匹配过的信息避免从头再去做匹配。3.next数组:存储每个对应位置之前的公共前后缀数量的数组。字符串的第一个匹配项的下标(下标从 0 开始)。,检查是否可以通过由它的一个子串重复多次构成。1.目的:解决字符串匹配问题。给定一个非空的字符串。
2024-04-26 20:24:08
157
1
原创 算法题day8
给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。例如,对于输入字符串 "a1b2c3",函数应该将其转换为 "anumberbnumbercnumber"。②使用栈:栈有先进后出的特点,遍历字符串的时候用栈的pop给字符串赋值。③使用字符串的反转函数:s[:]=reversed(s).④切片:s[:]=s[::-1].⑤原地反转:s.reverse()返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。
2024-04-24 23:57:24
396
原创 算法题day6
请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。之前有过的思路:排序。但是,数组中同一个元素在答案里不能重复出现。新链表是通过拼接给定的两个链表的所有节点组成的。1.leetcode题目 242 有效的字母异位词(easy)②python中 直接计数:(内存和时间消耗比第一种方法大)是由重新排列源单词的所有字母得到的一个新单词。2.leetcode题目 赎金信(easy)
2024-04-22 23:12:21
561
原创 算法题day5(补卡)
题目描述:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。思路:让快指针先走n步,整体遍历的时候,快指针遍历完时,慢指针则刚好在倒数第n个的前一个。思路:①构建虚拟头节点,②画图操作,③需要保留节点,不然操作之后就找不到顺序了。我的思路:先得到链表长度N,再遍历到N-n个节点处执行删除操作。2.leetcode题目 19 删除链表的倒数第n个节点。题目描述:给你一个链表,删除链表的倒数第。①思路:利用栈的先进后出原则。
2024-04-21 21:45:28
306
1
原创 算法题day4
1.链表定义:链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域,一个是指针域。思路:创建虚拟头节点,再遍历整个链表,遍历的时候如果Node.val == val,则cur.next = cur.next.next。思路:遍历链表A,将每一个节点放入集合中,在遍历B的过程中判断B的节点是否存在集合中,如果存在,则返回当前节点。2.存储方式:注意链表在内存中可不是连续分布的,它是靠指针连接并且散乱分布的。4.在一般的链表操作中,设置一个虚拟的头节点再进行操作,比较方便理解。
2024-04-19 23:04:07
359
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人