![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
MrCabal
这个作者很懒,什么都没留下…
展开
-
leetcode 199. 二叉树的右视图
二叉树的层序遍历,当前节点为当前层最后一个时入队class Solution { public List<Integer> rightSideView(TreeNode root) { List<Integer> res = new ArrayList<>(); if (root == null) { return res; } Queue<TreeNode> .原创 2021-06-10 22:40:06 · 142 阅读 · 0 评论 -
leetcode hot100 #49. 字母异位词分组
题目描述给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入:["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。题解:先把String转化为字符数组,使用Array.sort()将字符数组排序,排序后所有的字母异位词都将相同,把排序后的数组转化为S原创 2021-04-07 21:16:42 · 200 阅读 · 0 评论 -
leetcode hot100#39. 组合总和(简单DFS) c++
题目给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7] , [2,2,3] ]输入:candidates = [2,3,5], target = 8,所求解集为:[ [2原创 2020-08-18 21:56:12 · 185 阅读 · 0 评论 -
leetcode hot100#34. 在排序数组中查找元素的第一个和最后一个位置(二分模板+总结) java,另附c++偷懒写法
题目给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: [-1,-1]题解O(log n) 级别算法在第一时间就应该想到使用二分来解题以下是二分模原创 2020-08-17 21:44:05 · 104 阅读 · 0 评论 -
leetcode hot100#33. 搜索旋转排序数组(有条件的二分搜索)
题目假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。问题:搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], target = 0输出: 4示例 2:输入: nums = [4,5,6,7,0,1,2], targ原创 2020-07-01 15:54:59 · 113 阅读 · 0 评论 -
leetcode hot100#11. 盛最多水的容器(模拟双指针)
题目给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示...原创 2020-04-23 23:11:25 · 158 阅读 · 0 评论 -
leetcode hot100 #15. 三数之和(三指针模拟)
题目给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1] , [-1, -1, 2] ]题解:对于给到的nums...原创 2020-04-21 18:33:35 · 185 阅读 · 0 评论 -
leetcode hot100 #5.最长回文子串
题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”题解对于回文串有两种情况:1)长度为奇数,中心对称,不需要考虑中心点的字符2)长度为偶数,完全对称所以当我们遍历字符串时就可以分情况考虑这两种情况,...原创 2020-04-18 16:59:52 · 108 阅读 · 0 评论 -
leetcode hot100 #3. 无重复字符的最长子串(滑动窗口)
题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke...原创 2020-04-16 18:26:33 · 162 阅读 · 0 评论 -
leetcode hot100 #2. 两数之和(链表相加)
题目给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&g...原创 2020-04-15 14:12:32 · 106 阅读 · 0 评论 -
leetcode hot100 #1. 两数之和
题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题1纯暴力,两...原创 2020-04-14 13:52:02 · 106 阅读 · 0 评论