
刷题
bug_Cat
大学狗一枚
展开
-
背包问题小结
背包问题小结介绍学算法的时候,背包问题是一个很常见的动态规划问题,像什么01背包、完全背包、多重背包等,当时学的时候就有一些懵懵懂懂的,现在复习的时候又不会了,所以进行总结一下,方便日后查看学习。问题基本上都是lintcode上面的题目,然后在github上还找到一个专门讲背包问题的仓库:https://github.com/tianyicui/pack背包问题在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i],题目地址:https://www.lintco原创 2020-07-11 22:57:15 · 323 阅读 · 0 评论 -
多数之和小结
多数之和小结在刷leetcode的时候发现了一类多数之和的问题,基本上都是采用排序+双指针解决,所有总结一下。两数之和题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]原创 2020-07-11 22:56:41 · 395 阅读 · 0 评论 -
括号问题
括号问题刷Leetcode时,遇到过许多括号问题,总结一下有效括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输入: "([)]"输出: false示例原创 2020-07-11 22:55:36 · 326 阅读 · 0 评论 -
字符串匹配问题小结
字符串匹配问题小结刷Leetcode时,发现有两个字符串匹配问题很巧妙,所以记录一下正则表达式匹配问题描述给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = "a原创 2020-07-11 22:54:55 · 576 阅读 · 0 评论 -
排列组合题目小结
排列组合题目小结排列题目全排列给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]没有重复元素,比较简单,可以放心的进行交换class Solution { public List<List<Integer>> permute(int[] nums) { public List<Li原创 2020-06-23 19:18:51 · 258 阅读 · 0 评论 -
重建二叉树
重建二叉树题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路是数据结构中学习的前序中序确定一颗二叉树,其实思路比较简单,通过遍历前序序列,找到根节点,然后从中序遍历中分出左子树和右子树就行,...原创 2020-05-04 22:24:02 · 172 阅读 · 0 评论 -
LeetCode FindMedianSortedArrays(寻找中位数)
LeetCode FindMedianSortedArrays(寻找中位数)题目:寻找两个有序数组的中位数给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例1:nums1 = [1, 3]nums2 = [2]则中位数...原创 2020-02-27 20:58:24 · 351 阅读 · 0 评论 -
LeetCode LongestPalindrome(最长回文子串)
LeetCode LongestPalindrome(最长回文子串)题目:寻找字符串中最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例1输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例2输入: “cbbd”输出: “bb”解题思路思考一看回文串的子串(去除头和尾的子串)也是回文串,就知...原创 2020-02-27 21:02:18 · 471 阅读 · 0 评论 -
替换空格
替换空格题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为“We Are Happy”.则经过替换之后的字符串为“We%20Are%20Happy“。解题思路其实这题比较简单,只需要对应好位置,就可以得出答案,时间上最小应该就是o(n)。但是情况上有两种可能,需要进行说明一下。能在原来的字符串数组上进行改动。能在原来数组上进行改动,那么只要找好最终数组...原创 2020-04-24 10:13:52 · 188 阅读 · 0 评论 -
二维数组中的查找
二维数组中的查找题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如:在下面这个数组当中查找数字7,返回true;查找数字5返回false【【1 2 8 9】 【3 4 9 12】 【4 7 10 13】 【6 8 11 15】...原创 2020-04-22 23:29:36 · 214 阅读 · 0 评论