LeetCode
文章平均质量分 54
small_engineer
把学习比作游戏是再合适不过了,学习到了一点新技术,就相当于学到了新的必杀技;刷LeetCode就像打怪,一个个打过去;写项目就像搭建城堡,先从地基打起,逐渐到高楼大厦
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LRUCache简单实现
来源于LeetCode. 146. LRU 缓存题目要求实现一个LRUCache,我们使用get时,需要额外把该节点移动到开头;我们使用put时,如果存在该节点,我们需要把该节点删除,并且插入到开头;不存在则插入到开头,此时需要判断长度是否大于给定的capacity。并且实现这两种操作时,时间复杂度都必须为O(1);get我们使用HashMap便可以达到我们的时间复杂度,但是HashMap不是有序的,但它的子类LinkedHashMap是有序的,所以我们使用LinkedHashMap便可以达到本题的效果原创 2022-06-03 13:24:06 · 981 阅读 · 1 评论 -
474. 一和零 Java(三维0/1背包)
开始这题讲解前,需要你掌握0/1背包滚动数组版本来看到第一眼准备用贪心的,每次取最短的字符串,不过很容易就被推翻了。便放弃了这种解法。这题我想最难的是:想到0/1背包的贪心上面,想到了0/1背包又很难想到是个三维的0/1背包,将背包容量变成了二维。我们将每个字符串看成是一个个物品,0和1的数量看做是它的容量.这样的话,就是一个三维的问题了,xy坐标为0和1的数量,z坐标为每个物品。依照0/1背包的滚动数组来做,本题可以转换为二维数组,因为z坐标是可以循环利用的。dp[i][j]代表的含义为:放..原创 2022-04-14 21:22:51 · 694 阅读 · 0 评论 -
LeetCode 494.目标和(回溯+动态规划[类似0/1背包])
最近开始写动态规划了,题解都少写好多!!!为啥呢?太tm难了,有些题看了题解还要想个几小时。终究还是菜狗!!不说了,继续写题解,加深理解第一种解法:回溯这个就不用我写了吧,感觉没有技术含量。用回溯我都感觉很愧疚,因为跟暴力差不多。但是没办法,不会就老老实实写这种了class Solution { int sum=0; public int findTargetSumWays(int[] nums, int target) { int length=nums.len.原创 2022-04-14 20:01:33 · 627 阅读 · 0 评论 -
LeetCode 501. 二叉搜索树中的众数(Java版暴打官方,还有谁(前序遍历+Mirrot+两次遍历真正的O(1)))
前言给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。假定 BST 满足如下定义:结点左子树中所含节点的值 小于等于 当前节点的值结点右子树中所含节点的值 大于等于 当前节点的值左子树和右子树都是二叉搜索树输入:root = [1,null,2,2]输出:[2]如果树中有不止一个众数,可以按 任意顺序 返回。第一种解法:前序遍历利用二叉搜索树的性质,中序遍历一定是有序的,也就是相同的数一定会挨在一起;我们原创 2022-04-02 19:20:03 · 1025 阅读 · 0 评论 -
LeetCode 15. 三数之和 回溯+双指针
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。原创 2022-03-11 23:18:16 · 795 阅读 · 0 评论 -
26. 删除有序数组中的重复项
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么nums的前 k 个元素应该保存最终结果。原创 2022-03-11 00:06:47 · 280 阅读 · 0 评论 -
LeetCode 1. 两数之和
LeetCode第一题详细题解原创 2022-03-10 23:13:08 · 108 阅读 · 0 评论
分享