
LeetCode刷题
鱼机
这个作者很懒,什么都没留下…
展开
-
Leetcode 94. 二叉树的中序遍历
给定一个二叉树,返回它的中序 遍历。输入: [1,null,2,3]输出: [1,3,2]1、递归/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { publi原创 2020-05-17 11:03:15 · 236 阅读 · 0 评论 -
Leetcode128. 最长连续序列
给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。1、排序 : O(nlgn) public int longestConsecutive(int[] nums) { //排序 Arrays.sort(nums); //最终结果(最长序列) int max = 1; //当前连续原创 2020-05-16 17:03:36 · 235 阅读 · 0 评论 -
LeetCode刷题笔记(十一)盛最多水的容器
题目:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。画 n 条垂直线,使得垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。注意:你不能倾斜容器,n 至少是2。解法1:暴力class Solution { public int maxArea(int[] heig...原创 2018-05-13 13:56:40 · 1625 阅读 · 0 评论 -
LeetCode刷题笔记(十)正则表达式匹配
给定一个字符串 (s) 和一个字符模式 (p)。实现支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符。'*' 匹配零个或多个前面的元素。匹配应该覆盖整个字符串 (s) ,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = "aa"p = "a"输出: fals...原创 2018-05-13 09:22:23 · 1496 阅读 · 0 评论 -
LeetCode刷题笔记(七)反转整数
题目:给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21解法1:字符串解法class Solution { public int reverse(int x) { int result; StringBuilder str = ne...原创 2018-05-06 13:26:26 · 254 阅读 · 0 评论 -
LeetCode刷题笔记(九)回文数
题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为...原创 2018-05-12 16:28:02 · 230 阅读 · 0 评论 -
LeetCode刷题笔记(六)Z字形变换
题目: 将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数:P A H NA P L S I I GY I R之后从左往右,逐行读取字符:"PAHNAPLSIIGYIR"实现一个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入: s = "PAYPALISHIRING", nu...原创 2018-05-06 11:45:28 · 251 阅读 · 0 评论 -
LeetCode刷题笔记(八)字符串转整数 (atoi)
题目:实现 atoi,将字符串转为整数。 在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。当字符串中的第...原创 2018-05-12 15:40:32 · 1822 阅读 · 0 评论 -
LeetCode刷题笔记(四)两个排序数组的中位数
题目:给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。示例1:nums1 = [1, 3]nums2 = [2]中位数是 2.0示例2:nums1 = [1, 2]nums2 = [3, 4]中位数是 (2 + 3)/2 = 2.5解法1:如果不考虑题目要求的时间复杂度,只需要遍历两...原创 2018-04-25 14:34:25 · 500 阅读 · 2 评论 -
LeetCode刷题笔记(五)最长回文子串
题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案。示例2:输入: "cbbd"输出: "bb"解法1:暴力遍历class Solution { public String longestPalindrome(String s) { Strin...原创 2018-05-02 12:34:19 · 312 阅读 · 0 评论 -
LeetCode刷题笔记(三)无重复字符的最长子串
题目: 给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定"abcabcbb",没有重复字符的最长子串是"abc",那么长度就是3。给定"bbbbb",最长的子串就是"b",长度是1。给定"pwwkew",最长子串是"wke",长度是3。请注意答案必须是一个子串,"pwke"是子序列而不是子串。...原创 2018-04-17 18:58:37 · 2684 阅读 · 2 评论 -
LeetCode刷题笔记(二)两数相加
题目:给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807ListNode类public class Li...原创 2018-04-14 23:11:33 · 1878 阅读 · 1 评论 -
LeetCode刷题笔记(一)两数之和
题目: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题1:class Solution { public in...原创 2018-04-14 20:34:18 · 1393 阅读 · 0 评论