随笔分类 - leetcode题解
摘要:错误思考 53. 最大子数组和 初次看题,首先暴力的来看,最大子数和。那么就是将每一个数组里的数作为开头,然后向后遍历找。直到找到最大,时间O(n2),显然不合适。 于是思考有木有更好的方法,于是就开始思考有木有规律。于是想到先以第一个数为开头,然后向后遍历找到最大,然后再把开头开始一个一个减去,找
阅读全文
摘要:最长回文子串 标题 给你一个字符串 s,找到 s 中最长的回文子串。 样例 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 示例 2: 输入:s = "cbbd" 输出:"bb" 来源:力扣(LeetCode) 链接:https://leetco
阅读全文
摘要:leetcode题目 98. 验证二叉搜索树 前序遍历 最简洁的答案版本,由于先判断的是根节点,所以直接判断当前root的值v,是否满足大于左子树最大,小于右子树最小,然后再遍历左子树,右子树是否是这样 func isValidBST(root *TreeNode) bool { return df
阅读全文
摘要:876. 链表的中间结点 这道题要求我们找到链表中的中间位置,首先想到第一种方法,使用两个指针,一个从头遍历到尾部确定长度,一个从头遍历到相应位置。那么有没有一遍遍历就能解决的?那么我们想到快慢指针,因为快慢指针往往可以做到一遍遍历,在慢指针处找到答案 做法: 慢指针走一步,快指针走两步。这样快指针
阅读全文
摘要:今天在LeetCode刷每日一题,遇到了388. 文件的最长绝对路径的思路,这道题让我想到了系统的目录是栈结构,果然在题解中找到了栈的解法(暴力半天没出来,跑去看题解了QWQ)。 所以我就捎带复习了一下go语言中栈的实现,然后把这道题给理解一下 go语言栈的实现 较为简单的实现(通过切片和内置函数)
阅读全文