算法
晓呆同学
Java软件工程师
展开
-
算法题--两数相除 [LeetCode](不使用乘法、除法和 mod 运算符)
题目描述 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数 dividend 除以除数 divisor 得到的商。示例 1: 输入: dividend = 10, divisor = 3 输出: 3示例 2: 输入: dividend = 7, divisor = -3 输出: -2说明:...原创 2019-10-24 20:59:29 · 2305 阅读 · 1 评论 -
算法题--有效的括号 [LeetCode]
题目描述 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1: 输入: “()” 输出: true示例 2: 输入: “()[]{}” 输出: true示例 3: 输入: “(]” 输出:...原创 2019-02-03 14:27:19 · 737 阅读 · 2 评论 -
算法题--删除链表的倒数第N个节点 [LeetCode]
题目描述 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5.说明: 给定的 n 保证是有效的。进阶: 你能尝试使用一趟扫描实现吗?题解方法一:两次扫描法 我们注意到这个问题可以容...原创 2019-02-03 11:11:42 · 1349 阅读 · 5 评论 -
算法题--最长公共前缀 [LeetCode]
题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl”示例 2: 输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。说明: 所有输入只包含小写字母 a-z 。题解方法一:横向扫...原创 2019-02-02 14:58:24 · 640 阅读 · 0 评论 -
算法题--盛最多水的容器 [LeetCode]
题目描述 给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器...原创 2019-01-31 20:46:40 · 1470 阅读 · 0 评论 -
算法题--最长回文子串 [LeetCode]
题目描述 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。示例 2: 输入: “cbbd” 输出: “bb”题解方法一:中心扩展算法 中心扩展就是把给定的字符串的每一个字母或两个字母之间空隙当做中心,向两边扩展,这样来找 长度...原创 2019-01-31 20:45:46 · 5379 阅读 · 3 评论 -
算法题--无重复字符的最长子串 [LeetCode]
题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3: 输入: “pwwkew” 输出: 3 ...原创 2019-01-31 20:44:57 · 1265 阅读 · 0 评论 -
算法题--两数相加 [LeetCode]
题目描述 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例: 输入:(2 -> 4 -> 3) + (5 -&原创 2019-01-31 20:44:00 · 457 阅读 · 0 评论 -
算法题--寻找两个有序数组的中位数 [LeetCode]
题目描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0示例 2: nums1 = [1, 2] nums2 =...原创 2019-01-31 20:43:08 · 553 阅读 · 0 评论 -
算法题--两数之和 [LeetCode]
题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0,...原创 2019-01-31 20:41:46 · 517 阅读 · 0 评论