leetcode
qmylzx
这个作者很懒,什么都没留下…
展开
-
背包
import java.util.Scanner; public class Main3 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int total = scanner.nextInt(); int initVol = scanner.nextInt(); int[][] arr = new int[to.原创 2020-09-07 16:41:13 · 137 阅读 · 0 评论 -
最长相同子串,且不重叠
import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; /* * 最长相同子串,且不重叠 * */ public class Main1 { public static void main(String[] args) { String str = "abcdefab"; int len = getMaxLenStr(str); i.原创 2020-09-07 15:56:02 · 388 阅读 · 0 评论 -
148. 排序链表
思路:归并排序 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode ...原创 2020-01-15 16:26:34 · 143 阅读 · 0 评论 -
42. 接雨水
暴力法: // 解一:核心思路,按行求,当遇到第一个大于等于当前行的列时,后续遇到比当前行低的列就 // 加1,直到遇到大于等于当前行高的列时就sum一次,每次计算一行,temp需要置为0,status=false // 时间复杂度:n*Max(int[] height) 空间O(1) class Solution { public int trap(int[] height) ...原创 2019-12-19 15:47:41 · 102 阅读 · 0 评论 -
k个反转链表
给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。 k是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。 示例 : 给定这个链表:1->2->3->4->5 当k= 2 时,应当返回: 2->1->4->3->5 当k= 3 时,应当返回: 3->...原创 2019-12-10 14:03:05 · 151 阅读 · 0 评论 -
盛最多水的容器
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线 ,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容 器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 输入: [1,8,6,2,5,4,8,3,7] 输出: 49 解析两线段之间形成的区...原创 2018-10-24 18:13:58 · 117 阅读 · 0 评论 -
最大子序和(DP,分治)
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 进阶: 如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。 以a[0]结尾的子序列只有a[0] 以a[1]结...原创 2018-10-24 14:51:32 · 505 阅读 · 1 评论 -
最长回文子串DP
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba"也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 分析:dp dp[ j ][ i ] 表示从 j 到 i 的子串 , 若dp[ j ][ i ] 为回文串,则 dp[ j+1 ][ i-1 ] ...原创 2018-10-24 14:24:50 · 598 阅读 · 0 评论 -
两个排序数组的中位数(归并)
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。 请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。 你可以假设 nums1 和 nums2 不同时为空。 示例 1: nums1 = [1, 3] nums2 = [2] 中位数是 2.0 示例 2: nums1 = [1, 2] nums2 = [3, 4] 中位数是 (2 +...原创 2018-10-24 12:04:17 · 871 阅读 · 1 评论 -
无重复字符的最长子串(队列,滑动窗口)
给定一个字符串,找出不含有重复字符的最长子串的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 无重复字符的最长子串是 "abc",其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 无重复字符的最长子串是 "b",其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 无重复字符的最长子串是 "wke",其长度为 3。原创 2018-10-24 11:21:04 · 1030 阅读 · 0 评论 -
两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 思路:for循环遍历,使用HashMap<Integer, Integer> ...原创 2018-10-24 11:08:17 · 86 阅读 · 0 评论 -
使用最小花费爬楼梯dp
数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。 您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。 示例 1: 输入: cost = [10, 15, 20] 输出: 15 解释: 最低花费是从c...原创 2018-10-25 22:55:35 · 322 阅读 · 0 评论