- 博客(44)
- 收藏
- 关注
原创 代码随想录打卡Day51
给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均被水包围。
2024-12-11 08:30:00
953
原创 代码随想录打卡Day49
给定 个非负整数表示每个宽度为 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 示例 2:输入:height = [4,2,0,3,2,5]输出:9代码:代码逻辑分析特殊情况处理: 如果数组长度小于等于 2,直接返回 0,
2024-12-10 12:37:04
726
原创 代码随想录打卡Day48
给定一个整数数组,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用0来代替。
2024-12-10 12:35:51
1004
原创 代码随想录打卡Day46
给你一个字符串 ,请你统计并返回这个字符串中 回文子串 的数目。回文字符串 是正着读和倒过来读一样的字符串。子字符串 是字符串中的由连续字符组成的一个序列。示例 1:输入:s = "abc"输出:3解释:三个回文子串: "a", "b", "c"示例 2:输入:s = "aaa"输出:6解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"代码:代码解析 定义与初始化: 表示子串 是否为回文子串。 初始值设为 ,表示所有子
2024-12-09 08:18:01
783
原创 代码随想录打卡Day45
给你两个字符串 和 ,统计并返回在 的 子序列 中 出现的个数,结果需要对 109 + 7 取模。示例 1:输入:s = "rabbbit", t = "rabbit":解释:如下所示, 有 3 种可以从 s 中得到 。示例 2:输入:s = "babgbag", t = "bag":解释:如下所示, 有 5 种可以从 s 中得到 。 动态规划思路:定义 :表示 的子序列中等于 的数量。 转移方程: 如果 ,有两种选择: 使用当前字符匹配:
2024-12-09 08:06:48
476
原创 代码随想录打卡Day44
给定两个字符串text1和text2,返回这两个字符串的最长的长度。如果不存在,返回0。一个字符串的是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。"ace""abcde""aec""abcde"两个字符串的是这两个字符串所共同拥有的子序列。3最长公共子序列是 "ace" ,它的长度为 3。3最长公共子序列是 "abc" ,它的长度为 3。0两个字符串没有公共子序列,返回 0。
2024-12-09 08:05:27
737
原创 代码随想录打卡Day41(Day40周日休息)
给定一个数组 ,它的第 个元素 表示一支给定股票第 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买
2024-12-08 16:48:32
723
原创 基于Qt的文字处理软件(一)
方法用于更新当前文件的信息,包括文件路径、修改状态以及窗口标题。文件路径被标准化。文档的修改状态被重置。窗口标题显示的是文件的名称,并指示文件是否有修改。这段代码是用于文件打开、加载、设置当前文件状态等场景的关键部分。扩展名处理:如果用户输入的文件名没有.html或.htm扩展名,默认将其修改为.html。保存操作:使用来将当前文档保存为 HTML 格式。更新文件路径:保存成功后,更新curFile来表示当前文档的路径。未命名文件:调用saveAs()让用户选择文件路径和名称来保存。
2024-12-07 18:48:13
3367
2
原创 代码随想录打卡Day39
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入:[2,7,
2024-12-07 15:44:07
1236
原创 代码随想录打卡Day38
给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。计算并返回可以凑成总金额所需的。如果没有任何一种硬币组合能组成总金额,返回-1。你可以认为每种硬币的数量是无限的。
2024-12-07 15:41:46
867
原创 代码随想录打卡Day37
这段代码选择使用uint64_t是为了防止由于大量加法运算导致数据溢出。这种类型特别适合需要处理大数或高精度运算的场景,常用于动态规划解决方案计数问题。377.组合总和IV给你一个由不同整数组成的数组nums,和一个目标整数target。请你从nums中找出并返回总和为target的元素组合的个数。题目数据保证答案符合 32 位整数范围。示例 1:7所有可能的组合为:(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)
2024-12-07 15:39:30
910
原创 代码随想录打卡Day36
(LeetCode 1049),问题本质是将一组石头分成两堆,使两堆石头的重量差尽可能小。通过动态规划,代码的目标是找到石头的一部分,使其总重量尽可能接近总重量的一半。
2024-12-06 00:49:28
871
原创 代码随想录打卡Day35
dp[j]表示:容量为j的背包,所背的物品价值可以最大为dp[j],那么dp[0]就应该是0,因为背包容量为0所背的物品的最大价值就是0。那么dp数组除了下标0的位置,初始为0,其他下标应该初始化多少呢?看一下递归公式:dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);dp数组在推导的时候一定是取价值最大的数,如果题目给的价值都是正整数那么非0下标都初始化为0就可以了。
2024-12-06 00:45:47
998
原创 代码随想录打卡Day34(Day33周日休息)
1. 计算 'dp[1][1]':'dp[1][1] = dp[0][1] + dp[1][0] = 1 + 1 = 2'2. 计算 'dp[1][2]':'dp[1][2] = dp[0][2] + dp[1][1] = 1 + 2 = 3'3. 计算 'dp[2][1]':'dp[2][1] = dp[1][1] + dp[2][0] = 2 + 1 = 3'4. 计算 'dp[2][2]':'dp[2][2] = dp[1][2] + dp[2][1] = 3 + 3 = 6'
2024-12-06 00:42:47
966
原创 代码随想录打卡Day32
(通常用F(n)表示)形成的序列称为。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(n) = F(n - 1) + F(n - 2),其中 n > 1给定n,请计算F(n)。
2024-12-05 22:35:26
593
原创 代码随想录打卡Day31
以数组intervals表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].[[1,5]]区间 [1,4] 和 [4,5] 可被视为重叠区间。
2024-12-05 22:28:09
448
原创 代码随想录打卡Day30
有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组points,其中表示水平直径在xstart和xend之间的气球。你不知道气球的确切 y 坐标。一支弓箭可以沿着 x 轴从不同点地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为startend, 且满足end,则该气球会被。可以射出的弓箭的数量。弓箭一旦被射出之后,可以无限地前进。给你一个数组points返回引爆所有气球所必须射出的弓箭数。
2024-12-05 22:25:13
536
原创 代码随想了录Day29
在一条环路上有 个加油站,其中第 个加油站有汽油 升。你有一辆油箱容量无限的的汽车,从第 个加油站开往第 个加油站需要消耗汽油 升。你从其中的一个加油站出发,开始时油箱为空。给定两个整数数组 和 ,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回 。如果存在解,则 保证 它是 唯一 的。示例 1:输入: gas = [1,2,3,4,5], cost = [3,4,5,1,2]输出: 3解释:从 3 号加油站(索引为 3 处)出发,可获得 4 升汽油。此时油箱有
2024-12-02 18:26:01
935
原创 代码随想录打卡Day28
这段代码通过贪心策略,每次计算当前能到达的最远位置,并动态更新覆盖范围。其高效性体现在只需线性遍历一次即可判断是否能到达终点,时间复杂度为 O(n)O(n),空间复杂度为 O(1)O(1)。
2024-11-29 15:58:55
1028
原创 代码随想录打卡Day27(Day26周日休息)
这段代码通过线性遍历和简单的条件判断,高效地计算了最长摆动子序列的长度,时间复杂度为 O(n)O(n),是一个优化的贪心算法实现。
2024-11-29 15:48:00
2146
原创 代码随想录打卡Day22、23、24、25
77. 组合(力扣中等难度)给定两个整数 'n' 和 'k',返回范围 '[1, n]' 中所有可能的 'k' 个数的组合。可以按任何顺序返回答案。
2024-11-12 23:09:36
1196
原创 代码随想录打卡Day21
给你二叉搜索树的根节点root,同时给定最小边界low和最大边界high。通过修剪二叉搜索树,使得所有节点的值在中。修剪树改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。可以证明,存在。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。[1,null,2]
2024-11-05 22:06:34
624
原创 代码随想录打卡Day20(Day19周日休息)
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]6节点2和节点8的最近公共祖先是6。2节点2和节点4的最近公共祖先是2, 因为根据定义最近公共祖先节点可以为节点本身。
2024-11-05 21:56:22
896
原创 代码随想录打卡Day17
给定一个不重复的整数数组nums。可以用下面的算法从numsnums返回 nums构建的最大二叉树。递归调用如下所示:- [3,2,1,6,0,5] 中的最大值是 6 ,左边部分是 [3,2,1] ,右边部分是 [0,5]。- [3,2,1] 中的最大值是 3 ,左边部分是 [] ,右边部分是 [2,1]。- 空数组,无子节点。- [2,1] 中的最大值是 2 ,左边部分是 [] ,右边部分是 [1]。- 空数组,无子节点。- 只有一个元素,所以子节点是一个值为 1 的节点。
2024-11-03 22:57:47
963
原创 代码随想录打卡Day15
'for' 循环只写到 'path.size() - 1',是因为我们希望在路径的每个节点之间加上 '"->"' 分隔符,但不在最后一个节点后面添加。通过 'for' 循环只遍历到 'size() - 1',我们确保在循环结束后,再手动将最后一个节点的值直接添加到 'sPath',以避免多余的分隔符。如果当前节点本身是叶子节点,则返回 '0',因为它不可能是另一个节点的左叶子。2. 生成路径 '"1->2->5"' 并返回时,'5' 必须从 'path' 中移除,以确保路径恢复为 '[1, 2]'。
2024-11-02 19:12:59
1017
原创 代码随想录打卡Day11
给你一个字符串数组tokens,表示一个根据表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。9该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 96该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6。
2024-10-27 00:09:00
468
原创 代码随想录打卡Day10
遍历字符 'b','result'不为空且末尾字符为'a',与'b'不重复,添加'b':'result = "ab"'.- 遍历字符 'b','result'末尾字符为'b',与'b'重复,删除末尾字符'b':'result = "a"'.- 遍历字符 'a','result'末尾字符为'a',与'a'重复,删除末尾字符'a':'result = ""'.- 遍历字符 'a','result'末尾字符为'c',与'a'不重复,添加'a':'result = "ca"'.否则返回'false'。
2024-10-25 22:12:35
960
原创 代码随想录打卡Day9
这道题还是有很多坑的,要注意各个循环的边界判定,同时代码的逻辑要好好捋清楚,初次做这道题的同学可以到idea上调试明白再在力扣上写题解。
2024-10-25 22:01:37
311
原创 代码随想录打卡Day7
每个字符的索引由 'magazine[i] - 'a'' 计算,这样可以将 ''a'' 对应到数组的第0个位置,''b'' 对应到第1个位置,依此类推。- 当 'i = 2' 时,'nums[i] = -1',如果不跳过它,你会再次找到相同的三元组 '[-1, 0, 1]'。- 假设数组已经排好序,当前遍历到某个元素 'nums[i]',如果 'nums[i - 1] == nums[i]',说明 'nums[i]' 和前一个元素 'nums[i - 1]' 相同。
2024-10-22 18:23:29
1159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅