LeetCode刷题系列
算法小白的刷题之旅
假装在火星
这个作者很懒,什么都没留下…
展开
-
1208. 尽可能使字符串相等(滑动窗口)
1208. 尽可能使字符串相等class Solution: def equalSubstring(self, s: str, t: str, maxCost: int) -> int: left, right, res, cost = 0, 0, 0, 0 while right < len(s): # 统计转化当前字符所需开销 cost += abs(ord(s[right]) -原创 2020-06-26 19:39:57 · 169 阅读 · 0 评论 -
76. 最小覆盖子串
以下内容来自labuladong的算法小抄"""给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。示例:输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"说明:如果 S 中不存这样的子串,则返回空字符串 ""。如果 S 中存在这样的子串,我们保证它是唯一的答案。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-window-subst原创 2020-06-18 01:09:30 · 196 阅读 · 0 评论 -
739. 每日温度(Leetcode每日一题2020-06-11)
739. 每日温度暴力解法(超时)class Solution: def dailyTemperatures(self, T: List[int]) -> List[int]: n = len(T) res = [] # 逐个遍历 for i in range(n-1): for j in range(i+1, n): if T[i] < T[j]:原创 2020-06-11 01:06:31 · 131 阅读 · 0 评论 -
Python实现LRU缓存(LeetCode 146. LRU缓存机制)
146. LRU缓存机制如图,要实现一个LRU缓存。LRU缓存要支持O(1)时间复杂度的get和put操作,同时还有保证当缓存容量达到上限的时候,删除最久未使用的数据。要想实现题目中给定的要求,需要同时使用哈希表和双链表这两种数据结构。使用哈希表保存key和对应双链表节点node,可以保证在O(1)时间复杂度内找到指定key的节点,同时能够返回节点的值value。而对于给定节点node的情况下,双链表可以在O(1)时间复杂度内完成删除和添加node到链表中,单链表无法做到O(1)。具体代码如下。原创 2020-06-10 23:16:39 · 706 阅读 · 0 评论 -
9. 回文数(Python)
LeetCode今天的每日一题(2020-06-10)如下,判断一个数字是否是回文数。传送门注意题目的最后又一个进阶提示:你能不将整数转为字符串来解决这个问题吗?。也就是说你可以把数字先转为字符串,然后通过判断这个字符串是否是回文字符串来判断给定的数字是否是回文数。那我们先来看看如何判断一个字符串是否回文。如果是判断一个字符串是否回文的话,最直接的思路就是通过双指针,同时从字符串的头部和尾部进行检查,如果有一对字符不同就可以直接断定这个字符串非回文串。如果循环结束,都没有发现不同的字符对的话,就说明是原创 2020-06-10 01:33:30 · 794 阅读 · 0 评论 -
二叉树的前序遍历(递归+迭代)
使用前序遍历输出二叉树的节点值144. 二叉树的前序遍历没啥可说的,直接看代码吧递归法# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def preorderTraversal(self原创 2020-06-09 23:50:17 · 270 阅读 · 0 评论