LeedCode
lumaomao_
哈哈哈哈哈哈哈哈
展开
-
LeedCode刷题系列0001——两数之和
问题: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 解答: 用HashMap结构存储数组及其下标HashMap<值,下标&g...原创 2018-09-25 21:50:44 · 231 阅读 · 0 评论 -
LeedCode刷题系列0002——两数相加
问题: 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 问题示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 解决方案: 这...原创 2018-09-28 10:46:35 · 199 阅读 · 0 评论 -
LeedCode刷题系列0003——无重复字符的最长字串
问题: 给定一个字符串,找出不含有重复字符的最长子串的长度。 问题示例: 输入: "pwwkew" 输出: 3 解释: 无重复字符的最长子串是 "wke",其长度为 3。 请注意,答案必须是一个子串,"pwke" 是一个子序列 而不是子串。 解决方案: 题目的问题是求无重复的最长字串的长度,也就是求最大的下标范围[i,j]。 初始的i=0,j=0。我们的目标就是尽可能扩大j...原创 2018-10-22 21:22:49 · 181 阅读 · 0 评论 -
LeedCode刷题系列0004——两个排序数组的中位数
问题: 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。 请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。 你可以假设 nums1 和 nums2 不同时为空。 测试用例: 示例 1: nums1 = [1, 3] nums2 = [2] 中位数是 2.0 示例 2: nums1 = [1, 2] nums2 =...原创 2018-10-23 11:08:03 · 147 阅读 · 0 评论 -
LeedCode刷题系列0005——最长回文字串
问题: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。 测试用例: 示例 1: 输入: "babad" 输出: "bab" 注意: "aba"也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 官网给出了复杂度为n的解答,点击这里 使用动态规划的方法,复杂度为n²,代码如下: package com.lmm.Le...原创 2018-10-23 17:32:41 · 173 阅读 · 0 评论 -
LeedCode刷题系列0006——Z 字形变换
问题: 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。 测试用例: 示例 1: 输...原创 2019-02-24 21:23:10 · 153 阅读 · 0 评论 -
基本算法之动态规划
上接背包问题 动态规划的基本步骤: 最优子结构性质:找出最优解的性质,并刻画其结构特征; 建立递归关系:递归地定义最优值; 计算最优值:以自底向上的方式计算出最优值; 构造最优解:根据计算最优值时得到的信息,构造最优解。 上面说到我们在分析动态规划的时候,一定要分析到造成动态规划的数组变动的参数是什么? 我们看一下LeedCode第746题: 我们先要知道我们的dp[]数组代表什...原创 2019-08-14 12:52:52 · 202 阅读 · 0 评论