自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 42. Trapping Rain Water

42. Trapping Rain Watercategories: [LeetCode]tags: [array, two poiners, easy] 42. Trapping Rain Water 题目大意:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。解题思路: 这道题我们可以用双指针一次遍历去做,我们分别用left和right代表数组两端 同时初始化三个自变量ans,leftmax 和rightmax代表最后答案,左边最大蓄水量

2021-01-08 06:03:08 175

原创 312. Burst Balloons

Lc-312categories: [LeetCode]tags: [Divide and Conquer, Dynamic Programming, Hard] 312. Burst Balloons 题目大意:给定n个气球标注为0到n-1,并且气球数组上的每个元素代表该气球的积分,要求戳爆所有气球来得到最大积分,如果戳爆第i个气球,你可以获得的积分为nums[left] * nums[i] * nums[right], left 和 right分别为i左右相邻的下标,当第i个气球被戳爆时

2021-01-07 23:25:20 167

原创 1564. Put Boxes Into the Warehouse I

Lc-1564categories: [LeetCode]tags: [Greedy, medium] 1564. Put Boxes Into the Warehouse I 题目大意:给定两个数组,一个代表盒子,一个代表仓库,仓库和盒子中的元素都代表高度,宽度为一个unit求出最多有多少个盒子可以放入仓库注意的是:盒子放入仓库只能从仓库左边进入也就是0-index盒子不能堆放,但可以随意调整盒子进入仓库的顺序解题思路:这是一道典型的贪心算法题, 首先我们需要对盒子的数组进行排序找

2021-01-07 05:12:31 403

原创 825. Friends Of Appropriate Ages

Lc-825categories: [LeetCode]tags: [Array, HashMap, medium] 825. Friends Of Appropriate Ages 题目大意:给定一个数组, 数组中每个元素代表代表一个人的年龄返回一共可以发出多少份好友请求,如果满足以下任意一个条件,则不能发出好友请求age[B] <= 0.5 * age[A] + 7age[B] > age[A]age[B] > 100 && age[A] <

2021-01-06 06:31:00 182

原创 140. Word Break II

Lc-140categories: [LeetCode]tags: [Dynamic Programming, DFS, hard] 140. Word Break II 题目大意:给定一个非空字符串和一个字典包含一个非空的 list of non-empty words在字符串中加上空格使字符串变成一个句子,使用空格分开的每个单词都能在字典中找到返回符合条件的所有可能的组合注意:同一个单词在字典中可以被使用多次,并且字典中没有重复的单词解题思路:首先这道题是一道DP和DFS结合的

2021-01-06 05:08:53 268

原创 1519. Number of Nodes in the Sub-Tree With the Same Label

Lc-1519categories: [LeetCode]tags: [DFS, BFS, medium]1519. Number of Nodes in the Sub-Tree With the Same Label题目大意:给定一个被标记为从0 到n-1的n个节点的树(一个连通,无向无循环的图),根节点为0结点, 并且每个结点也被标记了小写字母,所有的结点的小写字母按照结点顺序保存在一个字符串中labels,第i个node的字母为labels[i], 同时给定一个二维数组edges,ed

2021-01-05 10:49:54 165

原创 5. Longest Palindromic Substring

Lc-5categories: [LeetCode]tags: [String, Dynamic Programming, Medium] 5. Longest Palindromic Substring 题目大意:给定一个字符串s,返回最长回文子字符串。解题思路:首先拿到这道题,我们发现题目要求求最长子串,一般求最长或者最大之类的,我们都可以用动态规划的方法来做动态规划的话其实就是根据之前的状态来判定当前的状态我们用一个二维数组dp来表示当前遍历首尾字母中的字符串是否回文。既然考虑首

2021-01-03 00:31:45 120

原创 1684. Count the Number of Consistent Strings

Lc-1684categories: [LeetCode]tags: [String, easy]1684. Count the Number of Consistent Strings题目大意:给定一个只含有独特字母的字符串allowed和一个字符串数组words,如果某个元素中所有字母都出现在字符串allowed中, 我们就说这个字符串是相同一致的。返回相同一致的字符串的个数在给定字符串数组中解题思路:这道题可以通过HashSet和遍历字符串中的每一个元素来统计符合规则的个数。先将

2021-01-02 01:26:59 159

原创 1512. Number of Good Pairs

Lc-1512categories: [LeetCode]tags: [Array, HashTable,Math,easy]1512. Number of Good Pairs题目大意:给定一个数组nums, 好数对的定义是如果nums[i] == nums[j]并且 i < j, 要求返回好数对的数量解题思路:根据题意我们发现当数组中第一次出现元素 k, 我们将其放在map当中, 并让其value=1,接下来继续遍历数组, 后面再出现元素k,其必将满足nums[i] == n

2021-01-02 01:25:41 284 1

原创 1344. Angle Between Hands of a Clock

Lc-13441344. Angle Between Hands of a Clock题目大意:给你两个数 hour 和 minutes 。请你返回在时钟上,由给定时间的时针和分针组成的较小角的角度(60 单位制)。解题思路:初始化常数:one_min_angle = 6,one_hour_angle = 30。分针指针与 0 点垂线的角度为:minutes_angle = one_min_angle * minutes。时针指针与 0 点垂线的角度为:hour_angle = (hour

2021-01-02 01:23:57 182

原创 829. Consecutive Numbers Sum

Lc-829829. Consecutive Numbers Sum题目大意:给定一个正整数N,问有多少种连续整数的组合相加为N。for example:N = 5, 5 = 5 = 2 + 3, so answer is 2解题思路:首先,最小的两个连续正整数相加1+2=3,大点的就是2+3=5=1+2+2,再大点3+4=7=2+3+2=1+2+(2+2),从中可以看出如果存在两个连续正整数之和等于N,那么必然N=1+2+2k(k为正整数),N-(1+2)可以整除2,即(N-(1+2)

2021-01-02 01:20:10 158

原创 540. Single Element in a Sorted Array

Lc-540categories: [LeetCode]tags: [binary search, medium]540. Single Element in a Sorted Array题目大意:给定一个排序好的数组,数组中的每个元素都出现两次,只有一个元素只出现一次, 找到并返回这个元素。解题思路:根据题意,它是一个单调递增数组,符合使用二分搜索的条件。所以这道题可以用二分法来做首先我们还是想往常一样初始化low 和 high数组两端的下标然后通过while loop循环, 条件是

2021-01-02 01:18:56 189

原创 449. Serialize and Deserialize BST

Lc-449categories: [LeetCode]tags: [Tree, medium]449. Serialize and Deserialize BST题目大意:序列化是指将数据结构或对象转化为一个以bits代表的序列目的是可以存储在文件或memory缓存中,或者通过网络连接可以转传送到同一台或另一台计算机系统设计一个算法实现序列化和反序列化一个二分搜索数,对于设计的序列化和反序列化没有任何限制, 你只需要确保将二分搜索数序列化成一个字符串, 再将字符串反序列化成原本的树。解

2021-01-02 01:17:33 206

原创 154. Find Minimum in Rotated Sorted Array II

Lc-154154. Find Minimum in Rotated Sorted Array II题目大意:给定一个单调递增数组并且在某个pivot节点进行旋转i.e.[0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]找到在数组中最小的元素并且数组中可能有重复元素解题思路:根据题意,题目符合二分搜索首先初始化两个变量low 和 high分别等于数组的起始和最后一个元素的下标在一个while循环中,条件为low <= high找到当下mid

2021-01-02 01:13:06 110

原创 81. Search in Rotated Sorted Array II

Lc-8181. Search in Rotated Sorted Array II题目大意:假设一个单调递增的数组在某一个结点进行旋转使的数组内的所有元素变成两个单调递增的元素i.e. [0, 0, 1, 2, 2, 5, 6] --> [2, 5, 6, 0, 0, 1, 2];给定一个目标整数进行搜索, 如果在数组中找到返回true, 找不到返回false;解题思路:根据题目要求,我们先可以排除一些特别情况比如如果nums == null 或者nums的数组为空则返回false

2021-01-02 01:11:31 247 1

原创 69. Sqrt(x)

Lc-6969. Sqrt(x)题目大意:给定一个非负整数x, 计算并返回x的平方根由于返回类型是整数,所以只保留整数部分, 小数部分舍去解题思路:根据题目要求, 既然是非负整数,那么它的平方根范围肯定是在(0,X)之间, 从0到X是一个单调递增,满足二分搜索条件, 所以可以使用二分查找来做这道题。我们可以初始两个指针 low = 1, high = x; 然后用一个while loop去进行二分搜索, while的条件是low <= high。在while loop中, 我们先找

2021-01-02 01:09:21 156

原创 34.Find First and Last Position of Element in Sorted Array

Lc-3434.Find First and Last Position of Element in Sorted Array题目大意:给定一个整数数组nums按照递增排序和一个目标整数target,找出target在数组nums中的起始位置和结束位置,如果没有找到则返回{-1, -1}要求:编写算法的时间复杂度在O(logN)解题思路:根据题目要求,数组为单调递增并且要找出对应的目标整数的起始与结束位置,可以用二分搜索来做首先我们初始化 ans = {-1, -1},low = 0,h

2021-01-02 00:58:20 285

原创 3. Longest Substring Without Repeating Characters

Lc-33. Longest Substring Without Repeating Characters题目大意:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。解题思路:可以用two pointer思想来解这道题, 并且用set保存当前没有重复过得字母分别将两个指针i和j指向string的第一个字母进行while循环遍历, 条件是只要i和j都小于string的长度, while循环就一直遍历下去如果j所指的字母不在set当中,将j所指的字母保存进set当中, 然后j++(j

2021-01-01 12:36:46 144

原创 2. Add Two Numbers

Lc-22. Add Two Numbers题目大意:给定两个非空链表代表两个非负整数,两个整数的每一位数是以相反顺序储存,而且每一个结点保存一个整数的一位,将两个整数相加并把和以链表的形式保存。假设整数的最大位不能是0, 除了整数0.解题思路:首先初始化一个虚拟结点,并同时初始化两个结点p1 和 p2 指向给定的链表的第一个结点,初始化一个当下结点指向虚拟结点因为两个数的相同位相加可能大于10,所以同时初始化一个变量(初始为0)保存carry位只要p1 或 p2 不等于null, 就

2021-01-01 12:33:47 181

原创 1. Two Sum

Lc-1. Two Sum题目大意:给定一个整数数组nums和一个目标整数target,返回两数之和等于目标整数的两个下标。假定数组中只有一对答案并且不可以使用相同元素两次返回下标结果可以是任意顺序解题思路:首先我们可以初始化一个hashmap用来保存数组中对应元素的下标:Map<nums[index], index>;通过for loop 遍历数组中每一个元素, 如果 target - nums[i]的结果可以在 hashmap中找到对应的value返回nums[i] 和 t

2021-01-01 10:57:51 268 2

原创 230. Kth Smallest Element in a BSTs

Lc-230. Kth Smallest Element in a BSTs题目大意:给定一个二叉搜索树,找出第k个最小的元素。解题思路:根据二叉搜索树的特性,左子树小于根节点小于右子树。我们可以对二叉树进行中序遍历(Inorder Traverse)并将元素保存在一个ArrayList当中。第k个最小的元素也就是在ArrayList中index为k-1的元素中序遍历:left -> root -> rightTime Complexity: O(N)Space Complex

2020-12-23 10:34:20 114

空空如也

空空如也

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

TA关注的人

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