自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

原创 Flutter实现页面间传参

带参跳转步骤在router中配置这个路由需要携带的参数,这里的参数是 arguments,注意要用花括号包裹参数名称在相应组件中实现带参构造函数在state类中可以直接使用${widget.arguments}来访问到传递的参数在其他页面中使用Navigator.pushNamed()带参跳转

2024-06-26 21:27:38 177

原创 Flutter页面状态保留策略

简单,只需要把被渲染的组件外部套一层IndexedStack即可缺点: 在应用启动的时候,所有需要保存状态的页面都会直接被渲染,保存起来. 对性能有影响。

2024-06-26 21:22:49 365

原创 Flutter打包网络问题解决办法

请查看自己的Android sdk版本,比如我的就是’34.0.0’版本.在app/build.gradle中的android下添加,即可。报错的最主要问题其实在下一句。

2024-06-07 16:20:21 304

原创 代码随想录35期总结

核心思想:将问题分成若干个相同或相似的子问题,递归解决子问题,再将子问题的解合并得到原问题的解。常见应用:快速排序、归并排序、二分查找。

2024-06-07 11:14:30 526

原创 代码随想录35期Day60-JavaScript

核心思想:当当前遍历到的元素小于栈顶元素的时候,此时栈顶元素最大面积就是自身面积,然后while向左移动,如果左边的值大于当前遍历到的元素,可以得到中间两个的元素最大矩形面积(左边的高度*2)理解了下面这个用例,就能理解。

2024-06-04 11:06:43 144

原创 代码随想录35期Day59-JavaScript(day58休息)

核心思想:高频题目,使用单调栈能够得到当前元素的后边第一个比他大的元素,和左边第一个比他大的元素(就是栈中的下一个),然后计算即可.使用单调栈是横向计算面积的。核心思想:和之前的下一个更高温度差不多,使用单调栈,只不过这个需要你循环查找,可以通过遍历两次数组实现。

2024-06-03 16:12:52 199

原创 代码随想录35期Day57-JavaScript

核心思想:今天主要是学会单调栈的使用.找到比元素更大的下一个元素,如果比栈顶元素小就入栈,否则就出栈顶元素,当前元素就是比栈顶元素大的"下一个更大的元素".核心思想:使用单调栈存储元素的值就行。

2024-06-01 13:36:07 264

原创 代码随想录35期Day56-Java

核心思想:dp[i][j]表示从i到j最长回文子序列长度,如果第i个字符和第j个相同,那么dp[i][j]就是dp[i+1][j-1] + 2 , 不同的话就是 前缩短一个或者 后缩短一个的最大值. 所以依赖于i+1项,所以i需要从后往前遍历。核心思想:使用数组dp[i][j]表示s从i到j是否是回文串。

2024-05-31 10:53:27 239

原创 代码随想录35期Day55-Java

核心思想:和上面的题目没什么不同,只是字符不同的时候他们可以通过替换来进行操作,那么就需要再和两个字符串都减一+1(替换只需要一步)来比较一下就行。ps:今天没看题解,写了一遍,没debug直接ac了. 突然开窍了感觉是: )核心思想:想好dp数组存储的东西是什么含义就行了。

2024-05-30 14:10:39 178

原创 Rust Learning Day2

【代码】Rust Learning Day2。

2024-05-29 21:07:17 334

原创 代码随想录35期Day54-Java

核心思想:dp[i][j] 表示s前i个字符中包含t前j个字符序列的个数。核心思想:公共子序列长度达到需要判断的字符串的长度,说明是子序列。

2024-05-29 15:19:40 171

原创 Rust Learning Day1

【代码】Rust Learning Day1。

2024-05-28 17:26:44 490

原创 代码随想录35期Day53-Java

核心思想:这道题是我动态规划的启蒙题目,已经做了很多遍了,dp数组的变化方法是:相同则是左上角+1, 不相同则是上和左中的最大值。核心思想:这道题目起始就是求最长公共子序列,代码基本都不用变。核心思想:使用dp存储目前为止的最大和,如果是负数则存储0。

2024-05-28 10:56:30 154

原创 代码随想录35期Day52-Java

核心思想:需要用到二维dp数组 dp[i][j]表示第一个数组的前i个元素和第二个数组的前j个元素的最长序列长度。核心思想:dp数组存放目前为止最长子序列长度,因为是序列,所以要从找到比他小的前面所有的内容,找到最长的那个。核心思想:这个题目和上面题目的区别是这个要求是连续的,那么如果不是递增的就重置为0就行了。

2024-05-27 16:29:07 200

原创 代码随想录35期Day50-Java

0 持有股票的状态 1 没有股票的状态 2 当天卖出股票 3 前一天卖出股票,今天就是冷冻期状态。核心思想:因为有冷冻期,和之前的题目的状态就有所不同,状态的确定是很难的。核心思想:在买卖股票Ⅱ的基础上加上手续费,只有两个状态,持有或者不持有。

2024-05-25 15:26:40 138

原创 代码随想录35期Day49-Java

核心思想:和上面题目不同的是,你最多可以买K次股票,因此需要有2*k+1个状态,选择奇数为买入,偶数为卖出。核心思想:和昨天的买卖股票相比,这个只允许买两次,因此把状态新增几个,可见代码注释。

2024-05-24 09:08:13 227

原创 代码随想录35期Day48-Java

核心思想:可以使用贪心,选择左边最小的和右边最大的,也可以动态规划,需要保存是否持有股票的状态,dp[i][0]表示第i天,不持有股票,dp[i][1]表示第i天持有。核心思想:也可以用贪心,只要比后一天小,就今天买,明天卖. 动态规划dp数组和上面一道题一样,只不过dp持有股票的含义略微变化。

2024-05-23 19:24:34 146

原创 代码随想录35期Day47-Java

核心思想:dp[i]=Math.max(dp[i-1],dp[i-2]+nums[i]),每一项是前一项或者前前一项+自身的最大值。核心思想:这里需要从第一个到倒数第二个之间和第二个到最后一个,这两种情况用打家劫舍1的方法计算结果,然后取其中最大的。核心思想:变成了树,使用的dp数组很巧妙,只需要计算选他的最大值和不选的最大值.这点很难想到。

2024-05-22 16:00:36 145

原创 代码随想录35期Day46-Java

核心思想:背包问题最难的就是判断遍历的i和j分别代表什么,如何更新dp数组.这道题目的dp数组是valid,i表示容量s的长度(这个我想到了),j没有用来遍历单词数组,而是用来遍历当前长度i下,合格的部分.是否在单词数组中,使用了set的contains判断.自己想肯定想不了这么好的方法.

2024-05-21 11:03:45 104

原创 代码随想录35期Day45-Java(Day44休息)

核心思想:完全背包问题,背包中的物品是每次上几个台阶,背包容量是要上的台阶数。核心思想:容量是n,元素是平方数。

2024-05-20 14:07:17 194

原创 代码随想录35期Day43-Java

核心思想:完全背包问题,与01背包不同,完全背包每个元素可以使用无限次.那么只要把一维数组中容量遍历顺序改为从前到后即可。核心思想:这个题目和上面的区别是组合顺序不同,看作是不一样的答案。完全背包问题,注意结果集顺序的影响。

2024-05-18 16:00:57 188

原创 Java面经学习4

----这几天太烦躁了,考试,项目,作业,提前批也开始了: (------急急急。

2024-05-18 15:55:24 713

原创 代码随想录35期Day42-Java

核心思想:将这个问题转化成选择两组重量差不多的石头的01背包问题// 转化为选择两组相同重量的石头i++) {j <= sum/2;

2024-05-17 09:58:28 114

原创 代码随想录35期Day41-Java

核心思想:dp[i][j]的含义是:i个物品在j空间下的最大能携带价值,使用一个数组做滚动数组也可以,注意循环的时候空间遍历需要从后向前即可。核心思想:包装过的01背包。

2024-05-16 15:48:16 177

原创 Java面经学习3

【代码】Java面经学习3。

2024-05-15 10:26:26 605

原创 代码随想录35期Day40-Java

核心思想:dp[i]表示i个节点的不同二叉搜索树的数量,然后i个节点,比如三个,有三种情况,3为头节点:左2右0,1为头节点:左0右2,2为头节点:左一右一.那么dp[i]就等于这三种情况之和,每种情况的种数是dp[左]*dp[右]核心思想:递推公式比较难想,dp[i]表示值为i时的最大,每新增一个元素,就计算后面分几个元素是最大的。

2024-05-15 09:12:03 211

原创 Java面经学习2

删除策略: 1. 定时删除. 2. 惰性删除:访问到这个key的时候,如果key过期了就删除. 3. 定时+惰性 4. 惰性+内存回收:当内存到达一定阈值进行一次回收。底层维护一个过期字典数据结构,存放key:过期时间的键值对.

2024-05-14 20:12:21 860 1

原创 代码随想录35期Day39-Java

核心思想:动态规划,每一项的路径是上方和左方的和,初始化比较重要,你可以选择把所有的最外层元素都直接初始化为1,也可以创建一个m+1,n+1的数组,把0,1初始化为1.我代码中用的是第二种。核心思想:在上题的基础上,加上如果当前位置存在障碍就置为0即可.

2024-05-14 11:15:48 136

原创 Java面经学习1

找到牛客上大家分享的Java面经进行学习记录,已表明出处.加油

2024-05-13 21:35:42 698

原创 代码随想录35期Day38-Java(Day37休息)

核心思想:很简单dp[i]=dp[i-1]+dp[i-2].这里用了数组存储的形式,也可以递归。核心思想:每次选择从i-1和i-2中最小花费的爬就行.核心思想:和斐波那契一样。

2024-05-13 19:17:54 147

原创 代码随想录35期Day36-Java

有点摸不到头脑,总结不出来跟回溯差不多的模板,总是有思路,只能ac一部分测试用例.加油。

2024-05-11 09:51:45 189

原创 代码随想录35期Day35-Java

核心思想:获取字母的区间,然后如果遍历,遇到哪个字母右边界大于目前右边界,就更新遍历的终点.如果遍历到终点,说明这个区间内的所有包含的字母都只出现在目前这段区间内,我本来使用的map存储每一个区间,后面优化只用存储最后出现的地方就行了。核心思想:排序区间之后,如果重叠,更新下一个区间的右边界为最小值.如果重叠了,最少移除其中一个,更新移除的那个为最小的右边界之后就不会影响到之后的区间判断。核心思想:排序后遍历,遇到相重叠的区间,将最小左边界到最大右边界存到结果集。

2024-05-10 14:09:42 224

原创 代码随想录35期Day034-Java

核心思想:按照起始位置排序后,判断是否重叠。如果重叠的话接下来遍历跳过这两个气球。将后面的气球的末尾更新为第一个气球和第二个的最小。核心思想:这道题比较简单,只需要使用分支,记录每种货币的情况就可以完成。核心思想:很巧妙的贪心,排序成特定序列之后直接进行插入就是正确的顺序了。

2024-05-09 09:19:00 153

原创 代码随想录35期Day33-Java

核心思想:从左往右遍历一次,比左边大就+1,比左边小就置为1(贪心)。这样的话,如果右边比左边小减一的话,就可能得到负数。从右边往左边遍历左边比右边大的情况,如果左边比右边大就右边右边的+1,然后和之前左边遍历的取较大的。核心思想:每一个站点的加油量减去到下一个站的消耗量,就是这个站点的结余。如果结余是负数,那么就需要其他站点来补充。整个加油站是个环,那么就直接从负数的下一个开始。如果总共的结余总和为负数,那么从哪开始都是走不完的。如果有负数,则一直取反最小的负数,如果没有就取反正数。

2024-05-08 17:30:54 273

原创 代码随想录35期Day32-Java

核心思想:我使用了从后向前的遍历,比较好想但是遍历次数多些。也可以维护一个当前最大距离和最大距离,计算几步最大距离能覆盖到最后一个元素。核心思想:很简单,只要第二天比第一天贵,就第一天买入,第二天卖出。核心思想:只要看最远的跳远距离能到最后一位就可以了。

2024-05-07 13:24:02 199

原创 代码随想录35期Day31-Java

核心思想:有好几种方法完成,使用数组维护从第一个数到目前这个数的所有子序列的和的最大值(动态规划),遍历。核心思想:将两个数组排序,计算饼干遍历完能有几个大于需求的个数。核心思想:看数组峰值的个数即可,最后的长度是峰值的个数加一。

2024-05-06 20:39:42 249

原创 代码随想录35期Day30-Java

五一收假,并且这三道题都是选做,明天看一下吧。

2024-05-05 22:01:38 236

原创 代码随想录35期Day29-Java

核心思想:需要一个Boolean数组记录哪个使用过了,然后每次都从第一位开始遍历,这个没有去重,直接写回溯就ok。核心思想:也是回溯,但是不能使用排序去重,需要使用set。核心思想:还是使用了used数组,需要去重。

2024-05-04 12:20:11 189

原创 代码随想录35期Day28-Java

核心思想:包含有空集,注意加上就行,每一个元素都遍历后面的所有元素。核心思想:ip不能有长度不为1,前缀为0的值。核心思想:和上面的题目额外需要进行去重。

2024-04-29 20:45:42 195

原创 代码随想录35期Day27-Java(day26休息)

核心思想:主要是去重部分:去重有好几种方法:使用Boolean数组,set,排序后比较是否和前一个元素相同。核心思想:使用start维护一个字符串的起始。

2024-04-28 20:22:52 161

头歌平台的基本使用和评测脚本的修改文档

头歌平台的基本使用和评测脚本的修改文档

2023-06-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除