![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
代码随想录
文章平均质量分 93
C1aySec
这个作者很懒,什么都没留下…
展开
-
第十章 单调栈part02
给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。原创 2024-07-24 09:00:24 · 828 阅读 · 0 评论 -
第十章 单调栈part01
中,对于数组中的每个元素,从当前元素右边找到第一个比当前元素值更大的元素,将该元素与当前元素的距离保存到一个数组中进行返回。分析过程:情况一:当前遍历的元素T[i]小于栈顶元素T[st.top()]的情况情况二:当前遍历的元素T[i]等于栈顶元素T[st.top()]的情况情况三:当前遍历的元素T[i]大于栈顶元素T[st.top()]的情况栈为空,将73对应的索引0插入栈中,作为栈顶元素此时:stack = [0]当前温度 74 > 栈顶温度 73,满足情况三。原创 2024-07-24 08:58:10 · 987 阅读 · 0 评论 -
第九章 动态规划part13
给你一个字符串s,请你统计并返回这个字符串中的数目。是正着读和倒过来读一样的字符串。是字符串中的由连续字符组成的一个序列。原创 2024-07-23 22:42:50 · 469 阅读 · 0 评论 -
第九章 动态规划part12
给你两个字符串s和t,统计并返回在s的中t出现的个数,结果需要对 10+ 7 取模。原创 2024-07-23 22:41:03 · 378 阅读 · 0 评论 -
第九章 动态规划part11
给定两个字符串text1和text2,返回这两个字符串的最长的长度。如果不存在,返回0。一个字符串的是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。"ace""abcde""aec""abcde"两个字符串的是这两个字符串所共同拥有的子序列。原创 2024-07-23 22:39:40 · 997 阅读 · 0 评论 -
第九章 动态规划part10
给你一个整数数组nums,找到其中最长严格递增子序列的长度。是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组的子序列。原创 2024-07-23 22:38:25 · 955 阅读 · 0 评论 -
第九章 动态规划part09
给你一个整数数组prices和一个整数k,其中prices[i]是某支给定的股票在第i天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成k笔交易。也就是说,你最多可以买k次,卖k次。你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。原创 2024-07-23 22:35:35 · 882 阅读 · 0 评论 -
第九章 动态规划part08
给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择买入这只股票,并选择在卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回0。原创 2024-07-23 22:34:11 · 835 阅读 · 0 评论 -
第九章 动态规划part07
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,。给定一个代表每个房屋存放金额的非负整数数组,计算你,一夜之内能够偷窃到的最高金额。原创 2024-07-23 22:32:23 · 634 阅读 · 0 评论 -
第九章 动态规划part06
给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。计算并返回可以凑成总金额所需的。如果没有任何一种硬币组合能组成总金额,返回-1。你可以认为每种硬币的数量是无限的。原创 2024-07-23 22:30:59 · 573 阅读 · 0 评论 -
第九章 动态规划 part05
小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等,它们各自占据不同的重量,并且具有不同的价值。小明的行李箱所能承担的总重量为 N,问小明应该如何抉择,才能携带最大价值的研究材料,每种研究材料可以选择无数次,并且可以重复选择。原创 2024-07-23 22:29:35 · 745 阅读 · 0 评论 -
第九章 动态规划part04
有一堆石头,用整数数组stones表示。其中stones[i]表示第i块石头的重量。每一回合,从中选出,然后将它们一起粉碎。假设石头的重量分别为x和y,且x <= y。x == yx!= yxyy-x最后,石头。返回此石头。如果没有石头剩下,就返回0。原创 2024-07-23 22:27:54 · 910 阅读 · 0 评论 -
第九章 动态规划part03
小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等,它们各自占据不同的空间,并且具有不同的价值。小明的行李空间为 N,问小明应该如何抉择,才能携带最大价值的研究材料,每种研究材料只能选择一次,并且只有选与不选两种选择,不能进行切割。原创 2024-07-23 22:25:05 · 980 阅读 · 0 评论 -
第九章 动态规划part02
一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?原创 2024-07-23 22:23:48 · 975 阅读 · 0 评论 -
第九章 动态规划part01
(通常用F(n)表示)形成的序列称为。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。给定n,请计算F(n)。原创 2024-07-23 22:22:35 · 916 阅读 · 0 评论 -
第八章 贪心算法 part05
以数组intervals表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。原创 2024-07-23 22:18:05 · 424 阅读 · 0 评论 -
第八章 贪心算法 part04
有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组points,其中表示水平直径在和之间的气球。你不知道气球的确切 y 坐标。一支弓箭可以沿着 x 轴从不同点地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为xx且满足则该气球会被可以射出的弓箭的数量。弓箭一旦被射出之后,可以无限地前进。给你一个数组points,*返回引爆所有气球所必须射出的弓箭数 *。原创 2024-07-22 16:48:06 · 456 阅读 · 0 评论 -
第八章 贪心算法 part03
在一条环路上有n个加油站,其中第i个加油站有汽油gas[i]升。你有一辆油箱容量无限的的汽车,从第i个加油站开往第i+1个加油站需要消耗汽油cost[i]升。你从其中的一个加油站出发,开始时油箱为空。给定两个整数数组gas和cost,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回-1。如果存在解,则它是的。原创 2024-07-22 16:46:58 · 380 阅读 · 0 评论 -
第八章 贪心算法 part02
给你一个整数数组prices,其中prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候只能持有股票。你也可以先购买,然后在出售。返回你能获得的利润。原创 2024-07-22 16:45:53 · 805 阅读 · 0 评论 -
第八章 贪心算法 part01
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值g[i]这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸s[j]~ ~。如果,我们可以将这个饼干j分配给孩子i,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。原创 2024-07-22 16:44:22 · 346 阅读 · 0 评论 -
第七章 回溯算法 part04
给你一个整数数组nums,找出并返回所有该数组中不同的递增子序列,递增子序列中。你可以按返回答案。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。原创 2024-07-22 16:43:00 · 255 阅读 · 0 评论 -
第七章 回溯算法part03
正好由四个整数(每个整数位于0到255之间组成,且不能含有前导0),整数之间用'.'分隔。给定一个只包含数字的字符串s,用以表示一个 IP 地址,返回所有可能的,这些地址可以通过在s中插入'.'来形成。你重新排序或删除s中的任何数字。你可以按顺序返回答案。原创 2024-07-22 16:41:35 · 799 阅读 · 0 评论 -
第七章 回溯算法part02
给你一个的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的 所有,并以列表形式返回。你可以按返回这些组合。candidates中的数字可以。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为target的不同组合数少于150个。原创 2024-07-22 16:40:10 · 317 阅读 · 0 评论 -
第七章 回溯算法part01
给定两个整数n和k,返回范围[1, n]中所有可能的k个数的组合。你可以按返回答案。原创 2024-07-22 16:38:53 · 875 阅读 · 0 评论 -
第六章 二叉树part08
给你二叉搜索树的根节点root,同时给定最小边界low和最大边界high。通过修剪二叉搜索树,使得所有节点的值在中。修剪树改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。可以证明,存在。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。原创 2024-07-22 16:36:49 · 272 阅读 · 0 评论 -
第六章 二叉树part07
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]原创 2024-07-22 16:35:29 · 963 阅读 · 0 评论 -
第六章 二叉树part06
给你一个二叉搜索树的根节点root,返回。差值是一个正数,其数值等于两值之差的绝对值。原创 2024-07-22 16:33:08 · 904 阅读 · 0 评论 -
第六章 二叉树 part05
给定一个不重复的整数数组nums。可以用下面的算法从numsnums返回nums构建的**最大二叉树**。原创 2024-07-22 16:31:22 · 679 阅读 · 0 评论 -
第六章 二叉树 part04
给定一个二叉树的root,请找出该二叉树的节点的值。假设二叉树中至少有一个节点。原创 2024-07-22 16:28:24 · 809 阅读 · 0 评论 -
第六章 二叉树part03
给定一个二叉树,判断它是否是 平衡二叉树。原创 2024-07-22 16:25:55 · 978 阅读 · 0 评论 -
第六章 二叉树 part02
给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。原创 2024-07-22 16:18:55 · 621 阅读 · 0 评论 -
第六章 二叉树part01-下
使用一个队列来按顺序访问二叉树的每个节点,同时用一个哈希表来记录每个节点的层级。遍历时,如果碰到一个新层级的节点,就在结果列表中加一个新的子列表。这样,就能一层层地把节点值收集起来,实现了二叉树的逐层遍历。简单来说,就像在排队接水,每个人(节点)按顺序来,按层级分组,确保每一层的人都能按顺序接到水。public:// 结果向量,用于存储每一层的节点值if(root!= nullptr){ // 如果根节点不为空// 创建一个队列,用于BFS遍历// 创建一个哈希表,用于记录每个节点的层级。原创 2024-06-19 15:44:26 · 1750 阅读 · 0 评论 -
第一章_数组_Part1
二分查找题目描述给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1解题思路题目中原创 2024-06-05 09:22:16 · 661 阅读 · 0 评论 -
第一章_数组_Part2
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。原创 2024-06-06 15:52:04 · 1145 阅读 · 0 评论 -
第二章_链表_part01
题意:删除链表中等于给定值 val 的所有节点。示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]示例 2: 输入:head = [], val = 1 输出:[]示例 3: 输入:head = [7,7,7,7], val = 7 输出:[]原创 2024-06-07 15:41:59 · 1001 阅读 · 0 评论 -
第二章 链表part02
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。原创 2024-06-09 20:09:50 · 855 阅读 · 0 评论 -
第三章 哈希表part01
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1: 输入: s = “anagram”, t = “nagaram” 输出: true示例 2: 输入: s = “rat”, t = “car” 输出: false你可以假设字符串只包含小写字母。原创 2024-06-11 21:03:07 · 773 阅读 · 0 评论 -
第三章 哈希表part02
给定四个包含整数的数组列表 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。输出:2。原创 2024-06-13 16:20:06 · 976 阅读 · 0 评论 -
第四章 字符串part01
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]原创 2024-06-12 23:54:17 · 847 阅读 · 0 评论 -
第四章 字符串part02
给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world!输出: “world!hello”解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: “a good example”输出: “example good a”解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。原创 2024-06-17 10:40:30 · 608 阅读 · 0 评论