
LeetCode
坚持种树
勤勤恳恳耕地种树
HELLO_WORLD!小白不太白的世界~
展开
-
python leetcode 3 无重复字符的最长子串【中等题】
一 读懂题目二.分析,推导解法,产生思路。解题思路1:注意重复字符的位置对子串计算的影响解题思路2:滑动窗口,维护目标区间三 代码实现 def lengthOfLongestSubstring_b(self, s): ''' 解题思路:查找子串的过程中,若未遇到之前出现过的字符,则计算子串长度(即当前点与最近未重复的字符(start;子串计数起始位置)之差) 如果遇到前面出现过的字符,则修改子串计数起始位置,重复字符覆盖..原创 2021-09-01 15:37:18 · 153 阅读 · 0 评论 -
python leetcode 657 机器人能否返回原点【简单题】
一 读懂题目二.分析,推导解法,产生思路。解题思路:(1)直接考虑位置。左右抵消,上下抵消。(2)通过统计直接计算次数三 代码实现class Solution(object): def judgeCircle(self, moves): """ :type moves: str :rtype: bool """ # 左右抵消,上下抵消。 r_l = 0 u_.原创 2021-03-21 21:58:59 · 143 阅读 · 0 评论 -
python leetcode 643子数组最大平均数I【简单题】
一.读懂题目二.分析,推导解法,产生思路。解题思路:(1)滑动窗口解法(2)滑动窗口优化:# 1.初始化将滑动窗口压满,取得第一个滑动窗口的目标值# 2.继续滑动窗口,每往前滑动一次,需要删除一个和添加一个元素三 代码实现class Solution(object): def findMaxAverage(self, nums, k): """ :type nums: List[int] :type k: int .原创 2021-03-21 17:04:16 · 168 阅读 · 0 评论 -
python leetcode 628三个数的最大乘积【简单题】
一.读懂题目2.二.分析,推导解法,产生思路。解题思路:(1)一次排序,最大乘积是前面3个正数,或者前面2个负数乘后面一个正数。(2)一次遍历,以打擂台的方式,找到最大的三个正数和最小的两个负数。三. 代码实现 def maximumProduct(self, nums): """ :type nums: List[int] :rtype: int """ # 1. 一次遍历,以打擂台的方..原创 2021-03-18 19:27:49 · 217 阅读 · 0 评论 -
python leetcode 605种花问题【简单题】
一 读懂题目二.分析,推导解法,产生思路。解题思路:(1)000则中间一位可以种花。对于第一个位置和最后一个位置的处理,可以首尾加0。即哨兵,可以简化很多判断。(2)进一步优化,考察3个位置的不同值,移动i。1. 考察三个位置:i为中间位置 000则i可以种花; 100则i位置不能种花,且i移至i+1 010则i+1不能种花,且i移至i+2 101则i+2不能种花,且i移至i+32. 边界条件 对于第一个位置和最后一个位置的处理,可以首尾加0。即哨兵。3.仔细观察,还能进一步优.原创 2021-03-17 11:21:35 · 462 阅读 · 0 评论 -
python leetcode 解码字母到整数映射【简单题】
1.读懂题目2.分析,推导解法,产生思路。解题思路:遍历,三个为一组进行考察。第3个字符为‘#’则转换‘xx#’;第三个字符不为'#'则转换第一个字符。3.代码实现 def freqAlphabets1(self, s): """ :type s: str :rtype: str """ def change(strs): return chr(int(strs) + .原创 2021-03-09 13:13:18 · 115 阅读 · 0 评论 -
python leetcode 唯一摩尔斯密码词【简单题】
1.读懂题目2.分析,推导解法,产生思路。解题思路:set集合元素不重复。ord():将字符转换成对应的 ASCII 数值,或者 Unicode 数值3.代码实现class Solution(object): def uniqueMorseRepresentations(self, words): """ :type words: List[str] :rtype: int """ # .原创 2021-03-08 23:52:46 · 133 阅读 · 0 评论 -
python leetcode 合并两个有序链表【简单题】
1. 读懂题目2.分析,推导解法,产生思路。解题思路:(1)迭代的方法。遍历,考察结点的值和链表是否为空。(3)递归的方法。有点懵,回头还得再看。# Definition for singly-linked list.class ListNode(object): def __init__(self, val=0, next=None): self.val = val self.next = nextclass Sol.原创 2021-03-01 21:18:51 · 140 阅读 · 0 评论 -
python leetcode 删除排序数组中的重复项【简单题】
1.读懂题目2. 分析,推导解法,产生思路。解题思路:(1)遍历,前后元素比较并删除重复元素。删除重复元素增加执行时间的消耗。(2)双指针方法(常用到的解题方法)3. 代码实现class Solution(object): def removeDuplicates(self, nums): """ :type nums: List[int] :rtype: int """ i = 0原创 2021-03-01 21:11:49 · 104 阅读 · 0 评论 -
python leetcode 重塑矩阵【简单题】
1. 读懂题目2. 分析,推导解法,产生思路。解题思路:(1)逐行遍历放在对应的位置(2)转换为一维数组;除法问题找到对应位置 。除法问题:已知第i个元素,求在r行c列矩阵中的位置? 即为i/c行和i%c列(3)直接调用python numpy 中的内置函数 reshape 。但运行时间和空间都很高,不推荐。3.代码实现class Solution(object): def matrixReshape(self, nums, r, c): .原创 2021-02-17 19:24:28 · 146 阅读 · 0 评论 -
python leetcode 二进制求和【简单题】
1. 读懂题目2. 分析,推导解法,产生思路。解题思路:(1)模拟二进制转换。借鉴「列竖式」的方法,末尾对齐,逐位相加。逢二进一。(2)位运算,可不使用加减乘除。(位运算的方式参考于官方题解)3. 代码实现class Solution(object): def addBinary(self, a, b): """ :type a: str :type b: str :rtype: str "原创 2021-02-17 11:43:32 · 172 阅读 · 0 评论 -
python leetcode 最后一个单词的长度【简单题】
1. 读懂题目2. 分析,推导解法,产生思路。解题思路:(1)考虑到寻找最后一个单词且字符串最后可能存在多个空格。因此逆序扫描字符串,遇到非空格开始计数,再次遇到空格结束程序(2)利用python特性,split切分字符串3.代码实现 def lengthOfLastWord1(self, s): # 逆序扫描,遇到非空格开始计数,再次遇到空格结束程序 i = len(s) -1 flag = True len.原创 2021-01-25 20:27:26 · 153 阅读 · 0 评论 -
python leetcode 外观数列 【简单题】
1. 读懂题目2. 分析,推导解法,产生思路。解题思路:(1)遍历字符串,字符相同则字符数加1,不同则拼接此组字符。注意处理最后一组字符的拼接。(2)由于字符串是常量,对其进行的拼接,比较消耗时间。 故使用列表作为存储,最后输出做一个join。(3)使用双指针p,q的实现方式,可降低内存消耗,但执行时间比思路二相对高一些。3. 代码实现 def countAndSay(self, n): """ :type n: int原创 2021-01-25 19:31:31 · 158 阅读 · 0 评论 -
python leetcode 有效的括号 【简单题】
1. 读懂题目2. 分析,推导解法,产生思路。解题思路:(1)利用dict字典映射字符括号;list列表实现栈。# 特殊处理:若字符串长度为奇数,则false;空字符串:ture(2)取巧的方式:反复去掉配对的括号,直到没有可去除的括号为止。(3)查看ASCII可知,()相差1,[]与{}相差2。则可以既不需要字典映射也不需要写字符。3.代码实现 def isValid(self, s): # 利用map映射字符括号;list实现栈 .原创 2021-01-24 16:18:07 · 104 阅读 · 0 评论 -
python leetcode 最长公共前缀 【简单题】
1. 读懂题目注意: 字符串数组的长度不一定是3,范围是0-200。2. 分析,推导解法,产生思路。解题思路:(1)暴力法,取一个子字符串与后面的所有字符串比较,遍历所有字符串,找最长公共前缀"(2)转化为求字典序最小与最大的字符串的最长公共前缀(3)利用python特性,*strs(字符串数组)拆分字符串,zip取每个字符串同一位置的字母,利用set去重比较是否相同。 def longestCommonPrefix1(self, strs): """取一原创 2021-01-24 13:43:06 · 285 阅读 · 1 评论 -
leetcode python 罗马数字转整数 【简单题】
1. 读懂题目注意: 提示中已明确,不会出现跨位的情况。所以是可以简化为左右数字的加减问题。2. 分析,推导解法,产生思路。解题思路:(1)字符转换为数字的问题。可使用列表list或字典dict,利用对应关系解题。(2)对数字出现的问题,考虑左边小于右边则采用减法,左边大于右边则采用加法。3. 代码实现map_dic = {'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000}class Solution(obj原创 2021-01-23 20:37:25 · 108 阅读 · 0 评论 -
python leetcode 9 回文数【简单题】
1. 读懂题目2. 分析,推导解法,产生思路。解题思路:(1) 利用python中的[::-1],直接得到回文数,并比较。耗时和内存较多。class Solution(object): def isPalindrome(self, x): flag = False str1 =str(x) str2 = str1[::-1] if str1 == str2 : flag = Tr...原创 2020-12-17 23:05:25 · 174 阅读 · 0 评论 -
python leetcode 7 整数反转【简单题】
leetcode种树篇,勤勤恳恳,坚持下去,希望对你也有帮助。1.读懂题目2. 分析,推导解法,产生思路。解题思路:利用循环,对输入数字进行乘除和取余运算,并把输出值乘以10后与每次取余的结果相加,直到原数据变为0。3.代码实现class Solution(object): def reverse(self, x): flag = False # 标记数据的正负 x_reverse = 0 # 保存输出结果 if x &l原创 2020-12-17 22:19:41 · 184 阅读 · 0 评论