力扣算法题
Nancy_G
这个作者很懒,什么都没留下…
展开
-
20. 有效的括号
题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串示例 1:输入: “()[]{}”输出: trueLink解题思路:栈对于判断括号的有效性这一类问题都可以使用栈这一数据结构来解决。在对字符串进行遍历的时候,当遇到一个左括号的时候,我们会希望在后续遍历的时候有一个相应的右括号将其闭合。根据这一特点,即后遇到的左括号要先原创 2020-12-06 20:13:52 · 176 阅读 · 0 评论 -
15. 三数之和
题目描述:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]解题思路:排序+双指针题目中要求说是不重复的三元组,那么不重复的本质又是什么呢?在原创 2020-12-06 20:13:13 · 96 阅读 · 0 评论 -
9. 回文数
题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。Link解题思路:翻转数字的一半(1) 所有负数不可能是回文(2) 除了数字0以外,个位数为0的数不可能是回文(3) 反转数字的后半部分例如,对于数字 1221,如果执行 1221 % 10,我们将得到最后一位原创 2020-12-06 20:12:23 · 133 阅读 · 0 评论 -
11.盛最多水的容器
题目描述:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。Link解题思路:双指针法水的容量 = 两个指针指向的数字中较小值 ∗ 指针之间的距离第一个指针指向数组中第一个元素的位置(下标为0),第二个指针指向数组中最后一个元素所在的位置(下标为数组的长度减1)。通过比较两个指针原创 2020-12-06 20:11:57 · 78 阅读 · 0 评论 -
4. 寻找两个正序数组的中位数
题目描述:给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。要求时间复杂度是 O(log(m+n))示例:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5解题思路:划分数组在统计中,中位数被用来:将一个集合划分为两个长度相等的子集,其中一个子集中的元素总是大于另一个子集中的元素。如果理解了中位数的划分作用,就原创 2020-12-06 20:11:01 · 67 阅读 · 0 评论 -
3. 无重复字符的最长字串
题目描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。s 由英文字母、数字、符号和空格组成。实例:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。解题思路:滑动窗口(1) 我们使用两个指针表示字符串中某个子串的左右边界。其中左指针代表「枚举子串的起始位置」,而右指针即为不包含重复字符的最长子串的结束位置 rk;(2) 在每一步的操作中,我们会将左指针向右移动一格,表示 我们开始枚举下一个字符作为起始位置,然后原创 2020-12-06 20:10:15 · 108 阅读 · 0 评论 -
2. 两数相加
题目描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。解题思路:由于输入的两个链表都是逆序存储数字的位数的,因此两个链表中同一位置的数字可以直接相加。我们同时遍历两个链表,逐位计算它们的和,并与当前位置的进位值相加。具体而言,如果当前两个链表处相应位置的数字为 n1,n2,进位值为原创 2020-12-06 20:09:23 · 164 阅读 · 0 评论 -
1.两数之和
题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍解题思路:哈希表创建一个哈希表,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。import java.util.HashMap;class Solution { public int[] twoSum(in原创 2020-12-06 20:08:32 · 60 阅读 · 0 评论 -
5. 最长回文子串
文章目录1. 两数之和2. 两数相加3. 无重复字符的最长字串4. 寻找两个正序数组的中位数5. 最长回文子串1. 两数之和题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍解题思路:哈希表创建一个哈希表,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。impor原创 2020-12-05 14:25:32 · 134 阅读 · 0 评论