![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 69
望长安于日下
静以修身
展开
-
KMP算法
上图可以看出,当匹配失败时,j要移动的下一个位置k。存在着这样的性质:序列2的位置j最前面的k个字符和序列1的位置i之前序列的最后k个字符是一样的。// 方法一class Solution: def strStr(self, haystack: str, needle: str) -> int: a=len(needle) b=len(haystack) if a==0: return 0 next=.原创 2021-09-05 13:52:38 · 93 阅读 · 0 评论 -
Leetcode面试高频题分类刷题
文章目录1. 排序类(Sort)2.链表类(Linked List)3. 堆(Heap or Priority Queue)、栈(Stack)、队列(Queue)、哈希表类(Hashmap、Hashset)4.Stack题目5.Hashmap/ Hashset题目6.Heap/Priority Queue题目7.二分法(Binary Search)7.1 显式二分法7.2 隐式二分法8. 双指针(2 Pointer)8.1 背向双指针:(基本上全是回文串的题)8.2 相向双指针:(以two sum为基础的一原创 2021-08-12 21:54:08 · 704 阅读 · 0 评论 -
Leetcode刷题计划
1.语言选择个人觉得选择自己最熟悉的语言即可,没有必要为了刷题专门去学一门自己不熟悉的语言。实际面试中用Python和Java刷题的人是最多的~Python优势在于比较简洁,写起来快,在面试时候时间紧迫心态紧张的情况下会节省一些时间。劣势是没有TreeMap这种数据结构,真面到这样的题会被坑(我狗家就挂在了这个上面)。注意Matlab,R等不能算IT开发的编程语言,一般面试也不允许用。2. 基本知识个人还是建议在正经开始大规模刷题前先把面试中最常考的知识点学明白比较重要,不然直接去刷题怕是被打击的丧失原创 2021-08-12 21:46:00 · 563 阅读 · 0 评论 -
两个大数相加防止内存溢出
文章目录1. 题目描述2. 解题思路3. 代码实现1. 题目描述两个非常大的数直接进行相加会导致内存溢出,如何将两个非常大的数进行相加而不导致内存溢出:可以将数转化为字符串的形式进习输出2. 解题思路当前的两个数相加为a和b两个数组中的元素相加再加上上一轮的进位(pre),相加得到当前进位cur和当前余数num3. 代码实现class Solution: def add(self,a,b): n = max(len(a),len(b)) """判断长度,并原创 2021-04-19 23:34:26 · 822 阅读 · 0 评论 -
Leetcode练习题
1、求两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int原创 2021-02-18 14:54:08 · 219 阅读 · 3 评论