- 博客(1084)
- 资源 (19)
- 收藏
- 关注
原创 LeetCode---169. 多数元素(Boyer-Moore 投票算法)
【代码】LeetCode---169. 多数元素(Boyer-Moore 投票算法)
2024-08-12 09:24:15 464
原创 STK/MATLAB---根据dem底图数据和经纬度来获取对应地点的海拔
【代码】STK/MATLAB---根据dem底图数据和经纬度来获取对应地点的海拔。
2024-08-10 16:08:34 124
原创 LeetCode---343. 整数拆分(动态规划,细分为能拆分和不能拆分(有的拆分完数值更小了))
【代码】LeetCode---343. 整数拆分(动态规划,细分为能拆分和不能拆分(有的拆分完数值更小了))
2024-08-10 10:19:23 183
原创 LeetCode---53. 最大子数组和(动态规划,定义以i结尾的子数组的性质)
【代码】LeetCode---53. 最大子数组和(动态规划,定义以i结尾的子数组的性质)
2024-08-10 09:32:08 91
原创 LeetCode---213. 打家劫舍 II(动态规划,用去掉第一个元素或者去掉最后一个元素的办法把环拆开)
如何才能保证第一间房屋和最后一间房屋不同时偷窃呢?如果偷窃了第一间房屋,则不能偷窃最后一间房屋,因此偷窃房屋的范围是第一间房屋到最后第二间房屋;如果偷窃了最后一间房屋,则不能偷窃第一间房屋,因此偷窃房屋的范围是第二间房屋到最后一间房屋。假设数组 nums 的长度为 n。如果不偷窃最后一间房屋,则偷窃房屋的下标范围是 [0,n−2];如果不偷窃第一间房屋,则偷窃房屋的下标范围是 [1,n−1]。
2024-08-09 17:02:25 163
原创 LeetCode---309. 买卖股票的最佳时机含冷冻期(动态规划,f[i] 表示第 i 天结束之后的累计最大收益)
我们用。根据题目描述,由于我们最多只能同时买入(持有)一支股票,并且卖出股票后有冷冻期的限制,因此我们会有三种不同的状态:我们目前持有一支股票,对应的「累计最大收益」记为 f[i][0];我们目前不持有任何股票,并且处于冷冻期中,对应的「累计最大收益」记为 f[i][1];我们目前不持有任何股票,并且不处于冷冻期中,对应的「累计最大收益」记为 f[i][2]。
2024-08-09 15:48:18 167
原创 LeetCode---121. 买卖股票的最佳时机(找到当前位置之前的所有元素中的最小值,然后用当前元素减去此最小值来求收益)
【代码】LeetCode---121. 买卖股票的最佳时机(找到当前位置之前的所有元素中的最小值,然后用当前元素减去此最小值来求收益)
2024-08-09 14:55:17 171
原创 LeetCode---650. 两个键的键盘(动态规划,前面状态(取余,成倍的变化)转换来的)
【代码】LeetCode---650. 两个键的键盘(动态规划,前面状态(取余,成倍的变化)转换来的)
2024-08-09 13:00:47 208
原创 烟花效果教程(可直接复制运行)
示例代码<!DOCTYPE html><html lang="en" ><head> <meta charset="UTF-8"> <title>2024新年快乐!万事如意!</title> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"><meta name="mobile-
2024-08-09 11:05:07 362
原创 LeetCode---1995. 统计特殊四元组(用map以空间来换时间,b,c在每一轮大的循环中是一个固定的值)
我们将数组拆成红线分界的两个部分,左边包含a,b;右边包含c,d;我们直接遍历(a,b),将产生n^2的复杂度;而对于c,d的差,我们不再继续叠加循环遍历;而是直接记录每一个可能的c,d的差的个数。每个遍历的b的位置都对应着上图中的一条分界线;c和d一定再右边;我们需要求的就是右边的区间里 d-c = a+b 的个数。这个区间个数怎么求呢?我们也可以用map来计数统计每个不同的cd之差对应的区间个数。如果我们遍历b的顺序是从右往左,则b每往左边移动一位,c就多出一个选择;
2024-08-08 17:24:29 238
原创 LeetCode---334. 递增的三元子序列(三个元素可以直接赋值,内存空间变为了常数)
首先,新建两个变量 small 和 mid ,分别用来保存题目要我们求的长度为 3 的递增子序列的最小值和中间值。接着,我们遍历数组,每遇到一个数字,我们将它和 small 和 mid 相比,若小于等于 small ,则替换 small;否则,若小于等于 mid,则替换 mid;否则,若大于 mid,则说明我们找到了长度为 3 的递增数组!
2024-08-08 16:07:52 153
原创 LeetCode---24. 两两交换链表中的节点(画图找到两两节点是如何交换的)
【代码】LeetCode---24. 两两交换链表中的节点(画图找到两两节点是如何交换的)
2024-08-08 15:17:43 122
原创 LeetCode---2707. 字符串中的额外字符(对于每个位置来说都应该考虑其不被使用的情况)(动态规划))
【代码】LeetCode---2707. 字符串中的额外字符(对于每个位置来说都应该考虑其不被使用的情况))
2024-08-06 15:47:39 167
原创 STK---MATLAB中连接STK并创建一个新的场景
要在MATLAB中连接STK并创建一个新的场景,您可以按照以下步骤操作,确保STK和MATLAB能够正确通信。这些步骤包括连接STK、关闭现有场景、创建新场景、设置时间参数以及导入TLE文件。
2024-08-06 10:41:10 309
原创 LeetCode---91. 解码方法(动态规划(选||不选 状态累加))
【代码】LeetCode---91. 解码方法(动态规划(选||不选 状态累加))
2024-08-06 10:16:23 368
原创 LeetCode---221. 最大正方形(三者取最小的含义)
上面详解了 三者取最小的含义:图 1:受限于左上的 0图 2:受限于上边的 0图 3:受限于左边的 0数字表示:以此为正方形右下角的最大边长黄色表示:格子?作为右下角的正方形区域。
2024-08-05 19:32:47 158
原创 LeetCode---41. 缺失的第一个正数(将数组视为哈希表,把每个元素都放在其应该在的位置上)
由于题目要求我们「只能使用常数级别的空间」,而要找的数一定在 [1, N + 1] 左闭右闭(这里 N 是数组的长度)这个区间里。因此,我们可以就把原始的数组当做哈希表来使用。事实上,哈希表其实本身也是一个数组;我们要找的数就在 [1, N + 1] 里,最后 N + 1 这个元素我们不用找。因为在前面的 N 个元素都找不到的情况下,我们才返回 N + 1;那么,我们可以采取这样的思路:就把 1 这个数放到下标为 0 的位置, 2 这个数放到下标为 1 的位置,按照这种思路整理一遍数组。
2024-08-05 14:41:21 742
原创 C++---reverse指定翻转的区域
在C++中,使用函数可以对指定范围内的元素进行翻转。这个函数位于头文件中。你可以通过指定范围来翻转容器中的一部分。例如,翻转一个vector或string的指定区域。
2024-08-05 10:28:03 556
原创 LeetCode---413. 等差数列划分(动态规划,最终需要累加)
我们看三个递增的例子(具体看图):[1,2,3],这种情况很简单,只会贡献 1 个等差数列[1,2,3,4],这种情况会有 3 = 1 + 2 个等差数列[1,2,3,4,5], 这种情况则有 6 = 1 + 2 + 3 个等差数列[1,2,3,4,5,6], 这种情况则有 10 = 1 + 2 + 3 + 4 个等差数列通过以上的规律我们知道如果一个长度为 n 的连续等差数列,他会有 1 + 2 + 3 + … + n-2 个子等差数列。
2024-07-31 16:45:23 184
原创 LeetCode---738. 单调递增的数字(str[i-1]=9;//错误写法 str[i]=‘9‘;//正确写法)
【代码】LeetCode---738. 单调递增的数字(str[i-1]=9;//错误写法 str[i]=‘9‘;//正确写法)
2024-07-29 21:21:10 101
原创 vector预先分配内存空间---reserve 和 resize的区别
resize(size_t n):改变当前元素的数量,可能增加或减少元素。增加元素时会调用元素的默认构造函数,减少元素时会调用元素的析构函数。reserve(size_t n):只增加容量,不改变当前的元素数量。它不会调用任何元素的构造函数。
2024-07-29 15:06:31 313
原创 vector的插入操作 VS list的插入操作
vector:适用于需要随机访问的场景,插入操作可能涉及到内存重新分配和元素移动,效率较低。list:适用于频繁插入和删除的场景,插入操作效率较高,但不支持随机访问。选择哪种容器取决于具体需求和使用场景。
2024-07-29 14:49:28 340
原创 LeetCode---1005. K 次取反后最大化的数组和(注意要按照绝对值的大小从大到小进行排序)
【代码】LeetCode---1005. K 次取反后最大化的数组和(注意要按照绝对值的大小从大到小进行排序)
2024-07-27 22:04:54 123
Java学习必要的软件包
2020-09-26
GUI中的AWT,SWING
2020-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人