LeetCode
龙骨
这个作者很懒,什么都没留下…
展开
-
[LeetCode解题] -- 动态规划 [ 最小路径和 & 机器人走方格 ]
总感觉动态规划问题有理解不扎实,拿了2道dp基础题打夯,最小路径和 & 机器人走方格。一. 最小路径和64. 最小路径和[ 题目描述 ]给定一个包含非负整数的 mxn网格grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例 1:输入:grid = [ [1,3,1], [1,5,1], [4,2,1]...原创 2021-01-29 22:24:05 · 2106 阅读 · 1 评论 -
[LeetCode解题] -- DFS -- [ 岛屿数量 ]
200. 岛屿数量[ 题目描述 ]给你一个由'1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"]]输出..原创 2020-12-28 22:53:58 · 207 阅读 · 1 评论 -
[LeetCode解题] -- DFS [ 全排列 括号生成 组合总数]
全排列组合总数一 全排列46. 全排列 medium[ 题目描述 ]给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]][ 解题思路 ][ 代码实现 ][ 性能分析 ]二 组合总数39. 组合总和 medium[ 题目描述 ]给定一个无重复元素的数组candida...原创 2020-12-24 00:30:26 · 263 阅读 · 0 评论 -
[LeetCode解题] -- 螺旋矩阵
一、螺旋矩阵54. 螺旋矩阵[ 题目描述 ]给定一个包含m x n个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例2:输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12]]输出: [1,2,3,4,8,12,11,10,9,5,6,7...原创 2020-12-17 22:05:09 · 235 阅读 · 0 评论 -
[LeetCode解题] -- 打家劫舍
一 打家劫舍 I 198. 打家劫舍 easy[ 题目描述 ]你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (...原创 2020-12-06 16:26:51 · 123 阅读 · 1 评论 -
[LeetCode解题] -- 零钱兑换
动态规划是 求解最优化问题的一种常用策略零钱兑换 322. 零钱兑换[ 题目描述 ]给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。你可以认为每种硬币的数量是无限的。示例1:输入:coins = [1, 2, 5], amount = 11输出:3 解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3...原创 2020-12-06 01:03:29 · 605 阅读 · 0 评论 -
[LeetCode解题] -- funny HashMap
本节介绍leetcode如下解题1 两数之和 easy49 字母异位词分组 medium187 重复的DNA序列 medium205 同构字符串 easy219 存在重复元素 II easy242 字母异位词 easy290 模式匹配 easy804 唯一摩尔斯密码词 easy1 两数之和 easy1. 两数之和[ 题目描述 ]给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。...原创 2020-11-30 23:08:32 · 330 阅读 · 1 评论 -
布隆过滤器
一、布隆过滤器在Hbase中的应用Hbase中为了优化查询,经常会开启行级或者行加列级顾虑器什么时候应该使用布隆过滤器?布隆过滤器的主要作用,是帮助HBase跳过那些显然不包括所查找数据的底层文件。那么,当所查找的数据均匀分布在所有文件中(当用户定期更新所有行时,就可能导致这种情况),布隆过滤器的作用就微乎其微,反而浪费了存储空间。相反,如果我们查找的数据只包含在少部分的文件中,就应该果断使用布隆过滤器。应该选择行级还是行加列级布隆过滤器?很显然,行加列级因为粒度更细,占用的存储空间也就越多。因原创 2020-11-30 22:47:19 · 219 阅读 · 0 评论 -
[LeetCode解题] -- 动态规划三 [ 打家劫舍 ]
1.打家劫舍198. 打家劫舍[ 题目描述 ]你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的..原创 2020-11-27 01:45:41 · 228 阅读 · 0 评论 -
[LeetCode解题] -- 动态规划二 [ 子串、子序列问题 ]
子序列 vs 子串、子数组、子区间子序列 : 可以不连续子串、子数组、子区间 : 必须连续1.最大连续子序[ 子数组]和53. 最大子序和[ 题目描述 ]给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解...原创 2020-11-26 01:53:33 · 473 阅读 · 0 评论 -
[LeetCode解题] -- 电话号码的字母组合
17. 电话号码的字母组合[ 题目描述 ]给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。[ 解题思路 ]先附上代码,有时间了整理解题思路[ 代码实现 ]实现1:..原创 2020-10-18 15:12:53 · 242 阅读 · 0 评论 -
[LeetCode解题] -- 动态规划1 [ 买卖股票的最佳时机 礼物的最大价值 编辑距离 ]
1.编辑距离72. 编辑距离[ 题目描述 ]是一道特别经典的题。编辑距离算法被数据科学家广泛应用,是用作机器翻译和语音识别评价标准的基本算法。给你两个单词word1 和word2,请你计算出将word1转换成word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例1:输入:word1 = "horse", word2 = "ros"输出:3解释:horse -> rorse (将 'h' 替...原创 2020-10-17 00:07:45 · 180 阅读 · 0 评论 -
[LeetCode解题] -- LRU缓存机制
146. LRU缓存机制LRU 缓存淘汰算法就是一种常用策略。LRU 的全称是 Least Recently Used。[ 题目描述 ]运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果关键字已经存在,则变更其数据值;如果关键字..原创 2020-10-08 02:03:21 · 393 阅读 · 0 评论 -
【剑指Offer解题】【所有面试题Java汇总】
剑指offer这本书已经学习完了!期间,根据牛客网-剑指offer的目录,用Java整体刷了一遍。写一些简单的总结心得,第一版难免有很多有瑕疵的地方,在慢慢优化,供自己学习和大家一起参考,希望对也在刷题路上的你也有帮助。【代码下载链接 】https://github.com/zhanggfsir/CodingInterviews.git 今年6月份以来开始刷 Leetcode,越往后,越发感觉算法思想背后别样的味道,同时也暴露了自己算法基础的薄弱。不积跬步,无以至千里,不...原创 2020-10-07 21:25:22 · 181 阅读 · 0 评论 -
[LeetCode解题]--SQL专题 [ 窗口函数的应用;差集 交集 并集;group by ]
1.Limit x y详解limit n子句表示查询结果返回前n条数据offset n表示跳过x条语句limit y offset x 分句表示查询结果跳过 x 条数据,读取前 y 条数据limit x, y 分句表示: 跳过 x 条数据,读取 y 条数据题目176. 第二高的薪水首先先将数据去重:SELECT DISTINCT Salary FROM Employee再将是数据按薪水降序排除:SELECT DISTINCT Salary FROM Employee ORD.原创 2020-10-07 21:48:26 · 423 阅读 · 1 评论 -
[LeetCode解题]--SQL专题
1.最高的薪水176. 第二高的薪水[ 题目描述 ]编写一个 SQL 查询,获取 Employee表中第二高的薪水(Salary)。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述Employee表,SQL查询应该返回200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。+...原创 2020-10-07 18:36:54 · 1431 阅读 · 0 评论 -
[LeetCode解题]--二叉树专题 [ 待整理 ]
二叉树层序遍历二叉树最大深度二叉树最近公共祖先路径总和二叉树的所有路径原创 2020-09-28 23:16:36 · 86 阅读 · 0 评论 -
[LeetCode解题]--链表专题
Flag,那些如果说还有梦想,那一定是强大自信下的信念。 纪 重出江湖原创 2020-08-24 22:50:07 · 236 阅读 · 0 评论 -
[LeetCode解题]--二叉树的前中后续遍历-递归与非递归版实现
144. 二叉树的前序遍历94. 二叉树的中序遍历145. 二叉树的后序遍历【题目描述】给定一个二叉树,返回它的前序 中序 后续 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: 前序 [1,2,3] 中序 [1,3,2] 后续 [3,2,1]进阶:递归算法很简单,你可以通过迭代算法完成吗?一、递归实现二叉树的前、中、后续遍历 // 前序遍历 ...原创 2020-08-01 23:37:17 · 161 阅读 · 0 评论 -
[LeetCode解题]--最长回文子串
第_5_最长回文子串5. 最长回文子串题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"解决方法一:提示超时...思路:暴力求解代码 public static String longestPalindrome1(String s) { String...原创 2020-07-26 01:00:22 · 207 阅读 · 0 评论 -
[LeetCode解题]--链表
LeetCode打卡,对一些链表题目进行总结 [ _2_两数相加 _203_移除链表元素 ]_2_两数相加2. 两数相加问题描述给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 ->...原创 2020-07-24 01:45:42 · 259 阅读 · 0 评论 -
[LeetCode解题]--container
LeetCode 第 202 205 242 290 349 350 属于一类问题---数组相关的 “container”。主打HashMap能解决一、 _202_HappyNumber二、 _205_IsomorphicStrings三、 _242_ValidAnagram四、 _290_WordPattern五、 _349_IntersectionofTwoArrays六、 _350_IntersectionofTwoArraysII...原创 2020-07-20 00:06:02 · 146 阅读 · 0 评论 -
[LeetCode解题]--无重复字符的最长子串
public int lengthOfLongestSubstring(String s) { int n = s.length(), ans = 0; Map<Character, Integer> map = new HashMap<>(); for (int end = 0, start = 0; end < n; end++) { char alpha = s.charAt(end); ...原创 2020-07-08 21:01:32 · 186 阅读 · 0 评论 -
[LeetCode解题]--TOP_K问题
夜深人静,是那键盘的丁丁作响,那或是源于内心梦想的呐喊,督促一路高歌前行。继续打卡LeetCode。《剑指offer》--最小的K个数,LeetCode 第 215 347 451 属于一类问题---堆排序相关的 “TOP_K” 问题。一、_剑指offer_最小的K个数二、_215_KthLargestElementinanArray三、_347_Top_K_Frequent_Elements四、_451_SortCharactersByFrequency...原创 2020-06-30 00:48:12 · 365 阅读 · 0 评论 -
[LeetCode解题]--对撞指针
LeetCode 第 11 125 167 344 345 属于一类问题---数组相关的 “对撞指针”。一、_11_ContainerWithMostWater二、 _125_ValidPalindrome三、_167_TwoSumIIInputArrayisSorted四、_344_ReverseString五、_345_ReverseVowelsofaString...原创 2020-06-25 21:18:28 · 207 阅读 · 0 评论 -
[LeetCode解题]--快慢指针
LeetCode 第 26 2780 283属于一类问题---数组相关的 “快慢指针”。另外对于wc问题,HashMap总能求解。一、 _26_RemoveDuplicatesfromSortedArray二、 _27_RemoveElement三、_80_RemoveDuplicatesfromSortedArrayII四、_283_MoveZeroes...原创 2020-06-23 23:23:18 · 185 阅读 · 0 评论