![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
是小狐狸呀~~
,
展开
-
剑指offer41-数据流中的中位数(堆/优先队列)
解法一:有序列表保存数据流addNum 查找元素插入位置o(logn)(二分查找)+ 插入元素o(n)findNum o(logn)解法二:建立一个大根堆和小根堆,空间复杂度o(n)addNum o(logn)findNum o(1)from heapq import *class MedianFinder: def __init__(self): self.A=[] self.B=[] def addNum(self, num: int)原创 2021-01-04 21:06:36 · 115 阅读 · 0 评论 -
leetcode-基于排序思想
leetcode45-把数组排成最小的数字解法:基于快排,改变判断规则为class Solution: def minNumber(self, nums: List[int]) -> str: def fast_sort(l,r): if l >= r: return i,j=l,r while i < j: while s原创 2020-12-30 21:19:16 · 67 阅读 · 0 评论 -
剑指offer62-约瑟夫环
解法一:构造环型链表时间复杂度o(nm),空间复杂度o(n)class Node(object): def __init__(self,x): self.val=x self.next=Noneclass Solution: def lastRemaining(self, n: int, m: int) -> int: head=Node(0) tmp=head for i in range(1,n原创 2020-12-29 21:33:24 · 95 阅读 · 1 评论 -
刷题中的滑动窗口总结(定期更新)
据说共有10道左右,找出来剑指 Offer 57 和为s的连续正数序列剑指 Offer 48. 最长不含重复字符的子字符串原创 2020-07-21 00:33:50 · 93 阅读 · 0 评论 -
最小长度子序列
class Solution: def minSubArrayLen(self, s: int, nums: List[int]) -> int: if not nums: return 0 left = 0 cur = 0 res = float("inf") for right in range(len(nums)): cur += nums[right]原创 2020-07-21 00:30:56 · 202 阅读 · 0 评论 -
leetcode(剑指offer12)-矩阵中的路径(递归和回溯法不懂)
?为什么word为空时下标溢出呢class Solution: def exist(self, board: List[List[str]], word: str) -> bool: if not board or not word: return False def dfs(i,j ,k): if not 0 <= i < len(board) or not 0 <= j < l...原创 2020-07-20 23:51:32 · 75 阅读 · 0 评论 -
刷题中的链表总结(持续跟新)
反转链表注意:链表问题伴随着大量指针操作。面试时不要急着写代码,仔细分析设计不容易出错。由于链表是不连续存储的。当调节节点i的next指针时,需要(这里用tmp)来保存后节点的位置常见错误:① 输入链表头指针为null(特殊输入测试)或只有一个节点(一个功能测试)时,程序崩溃②反转链表出现断裂③返回的头节点不是原始链表的尾节点解决方法:提前想好测试用例,心中默默运行代码进行单元测试,再交给面试官循环解法# # class ListNode:# def __init__(s原创 2020-07-04 01:27:02 · 258 阅读 · 0 评论 -
刷题中的贪心算法总结(持续跟新)
0702看了左神介绍贪心算法一个视频,用拼接成字典序最低字符串这道题(leetcode上要会员才能解锁)来介绍。提出一种新的比较规则见下面类似的题。*剑指32 把数组排成最小的数题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。解题思路:先将整型数组转换成String数组,然后将String数组排序,最后将排好序的字符串数组拼接出来。关键就是制定排序规则。排原创 2020-07-02 23:46:32 · 268 阅读 · 0 评论 -
刷题中的二分查找,双指针总结(持续跟新)
二分查找# -*- coding:utf-8 -*-class Solution: def GetNumberOfK(self, data, k): if not data or data[0] > k or data[-1] < k: return 0 low = 0 high = len(data) - 1 cnt = 0 while low <= high:原创 2020-07-02 20:06:49 · 202 阅读 · 0 评论 -
刷题中巧用逻辑运算总结(不定期跟新)
如题咯原创 2020-07-06 22:17:29 · 108 阅读 · 0 评论 -
刷题中的HashMap,dict总结(持续跟新)
HashMap:一种数据结构dict:将键映射到值的一种映射类型注意:key唯一key是可hash的数据类型(int,str,tuple,bool),注意不可hash的数据类型有:list, dict,set剑指:数组中只出现一次的数字原创 2020-07-02 17:23:41 · 291 阅读 · 0 评论 -
初探动态规划解leetcode coin change,unique paths,jump game(JAVA)
学习视频:b站九章算法试听课:动态规划入门 Introduction to Dynamic Programming四个步骤总结:初体验java,状态方程写出来了就做出来一半,剩下的是代码实现,重视边界条件题型:三种一 计数时间复杂度O(MN) 空间复杂度(数组大小)O(MN))二 求最值时间复杂度O(MN)三 存在性O(N²) 据说该题用贪心复杂度会小一点,我不会啊...原创 2020-07-02 01:40:20 · 141 阅读 · 0 评论