leetcode刷题
扬眉启航
记录我成为攻城狮的道路
展开
-
leecode刷题之第63题:不同路径Ⅱ
题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 1:输入:[[0,0,0],[0,1,0],[0,0,0]]输出: 2解释:3x3 网格的正中间有一个障碍物。从左上角到右下角原创 2020-07-06 17:53:58 · 169 阅读 · 0 评论 -
leetcode刷题之第215题:数组中的第K个最大元素(多种解法)
题目描述在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。思路这题解法很多,基本上都是排序后取第K大的树,理论上说采用二叉排序树储存方法是一种很好的解法,但是因为手里有归并排序函数模板所以直接用了归原创 2020-06-29 17:15:08 · 351 阅读 · 0 评论 -
leetcode刷题之第49题:字母异位词分组
题目描述给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出:[[“ate”,“eat”,“tea”],[“nat”,“tan”],[“bat”]]说明:所有输入均为小写字母。不考虑答案输出的顺序。思路直观的想法是比较两个单词各字母的ASCII码,但实现起来较为麻烦而且速度慢。可以先将单词的字母从小到大排序,然后判断排序后的单词是否相等,相等则为原创 2020-06-29 16:53:47 · 1821 阅读 · 0 评论 -
leetcode刷题只第20题:有效的括号
题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出: true思路典型的用栈储存的解原创 2020-06-29 16:47:16 · 108 阅读 · 0 评论 -
leecode刷题之第5题:最长回文子串
题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”思路从中间向两边遍历比暴力破解法更好,当两边的字母不相同时会终止此位置的遍历,所以速度更快。代码class Solution {public: string longestPalindrome(string s) { int len原创 2020-06-28 12:04:31 · 4384 阅读 · 0 评论