leetcode
Adellle
山不向我走来,我便向山走去
展开
-
200.岛屿数量(bfs写法)
宽搜的正常思路,只不过每次加上计算岛屿数量cnt即可。原创 2023-12-16 12:48:50 · 51 阅读 · 0 评论 -
Leetcode每日一题(分割回文串Ⅰ)
Leetcode每日一题(分割回文串Ⅰ)原创 2023-12-14 19:55:17 · 105 阅读 · 0 评论 -
最小体力消耗路径(广度优先搜索)
这里的注意点就是在判断边界值,找最大的最小值的时候,需要特判,再加入队列,否则队列会重复添加元素,导致超时。用动态规划做的话不能一次保证当前位置能获得最小的最大值,因为需要周围的四个(或者两个)元素值。这里我纯用的BFS,宽度优先搜索。看见这题第一眼-动态规划,再看BFS。原创 2023-12-11 17:32:04 · 68 阅读 · 0 评论 -
关于最长上升子序列的动态规划问题的优化算法(二分搜索)
有了上面的铺垫,我们可以创建一个数组,在每个长度范围内都会存在一个大于子序列所有元素的最大值,用其来记录长度为len的递增子序列的最大值。例如[3,1,2,4] ,在子序列长度同为1的情况下,如果选择了3,那么后面比3大的元素一定比1大,所以选1比选3有更大的机会生成一个最长递增子序列。思路:使用动态规划的思想,判断当前元素之前的所有元素,如果比当前元素小,则修改当前元素的最长递增子序列(需判断是否需要修改)。此题也是一道求最长上升子序列的问题,不过值范围较大,暴力解法会TLE。时间复杂度:O(n^2)原创 2023-12-07 21:56:27 · 109 阅读 · 0 评论 -
动态规划之最长子序列
如果当前数左边不存在与当前数存在定差的数,则返回默认值0+1.对每对数对下标为0的排序,遍历数对,使用动态规划记录最长数对。遍历数组,存储当前左边所有数的最大的等差数列长度。同上一题,不过没有给等差数列的差值,可以自己遍历。原创 2023-12-06 17:32:10 · 82 阅读 · 0 评论 -
回文串+动态规划
遍历字符串,逐个判断每个字符,向两边扩散,判断以当前字符为中心,最长回文大小。动态规划的做法就是:记录已经遍历过的字符串,避免重复判断。原创 2023-12-04 16:48:27 · 66 阅读 · 0 评论 -
线性动态规划
初始化第一行和第一列,除了第一行第一列,其他的每个位置继承上/左的距离,选择最短的那个即可。原创 2023-12-02 09:20:03 · 292 阅读 · 0 评论 -
List<Pair<Integer,Integer>>使用lambda排序
【代码】List<Pair<Integer,Integer>>使用lambda排序。原创 2023-12-02 09:02:25 · 108 阅读 · 0 评论 -
动态规划基础篇(LeetCode每日一题计划)
方法一:f(x)=f(x-1)+f(x-2)原创 2023-11-11 17:57:30 · 148 阅读 · 0 评论 -
找质数(枚举 埃氏筛 线性筛)
输入一个数,返回小于等于这个数的质数。原创 2023-11-01 19:56:03 · 137 阅读 · 0 评论 -
朴实无华的三天每日一题
思路:直接在原数组nums上遍历,如果下标i和下标为i+1的元素相同则继续,并且i+=2,否则返回当前元素。如果是三个元素相同那就判断三个,如果是有两个只有一个的元素,那就继续遍历,直到记录当前元素的cnt为2为止。。原创 2023-10-16 17:14:11 · 219 阅读 · 0 评论 -
链表-真正的动态数据结构
优点:不需要处理固态容量问题,可动态扩容。缺点:丧失随机访问的能力。原创 2023-09-17 18:21:44 · 354 阅读 · 0 评论 -
两数相加(给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。)
两数相加。原创 2023-09-12 18:33:13 · 60 阅读 · 0 评论