数据结构与算法刷题
Pinkmanabcd
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
杭电ACM-1000
杭电OJ是我第一次使用的OJ,在此记录一下刷题的心路历程和解题吧,希望能给自己一个坚持下去的动力。Problem DescriptionCalculate A + B.InputEach line will contain two integers A and B. Process to end of file.OutputFor each case, output A + B in ...原创 2019-02-22 08:53:38 · 333 阅读 · 0 评论 -
Python栈的链表实现以及栈来实现浏览器的前进后退功能
栈的链表实现''' 用无头节点的单链表实现栈 filename:link_stack.py Author by: Lofues'''class Node(object): def __init__(self,val : int): self.val = val self.next = Noneclass LinkedStack(object): def __ini...原创 2019-07-28 14:12:57 · 326 阅读 · 0 评论 -
LeetCode 232:用栈实现队列 Python
问题描述使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(); // 返回 1queue.po...原创 2019-07-28 09:19:49 · 408 阅读 · 0 评论 -
Leetcode26. 删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums ...原创 2019-07-23 14:23:44 · 154 阅读 · 0 评论 -
Leetcode11题:盛更多的水 python3
给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色...原创 2019-07-23 14:00:35 · 312 阅读 · 0 评论 -
Python链表基础及实现
手写代码单链表实现LRUCachelRUCache是最近最短使用的Cache缓存机制#使用单链表实现lru_cache机制#分为两种情况#1.如果此数据之前已经被缓存到链表中了,遍历得到此节点并删除,然后插入到链表的头部。#2.如果此数据之前没有被缓存到链表中,分为两种情况:# 当缓冲没有满时,直接将其插入到头部# 当缓存满时,将链表尾部节点删除并插入到头部class Link...原创 2019-07-27 12:55:42 · 277 阅读 · 0 评论 -
python的常见排序以及O(n)时间内的查找第k大元素
冒泡排序def bubble_sort(l : list): length = len(l) if length <= 1: return for i in range(length): flag = False for j in range(length-i-1): if l[j] > l[j+1]: l[j], l[j+1] = l[j+1], l...原创 2019-07-31 16:03:18 · 1488 阅读 · 0 评论 -
floor puzzles
根据已知问题条件进行求解#------------------# User Instructions## Hopper, Kay, Liskov, Perlis, and Ritchie live on # different floors of a five-floor apartment building. ## Hopper does not live on the top...原创 2019-08-03 16:17:39 · 334 阅读 · 0 评论 -
Python实现基础二分查找与二分查找的变形以及应用
二分查找基础版本的递归与非递归''' 使用递归和非递归实现二分查找 Author by: Lofues'''def binary_search(a : list, n : int, val : int) -> int: #return Binary_search(a,0,n-1,val) return binary_search_rec(a,0,n-1,val)de...原创 2019-08-03 15:10:00 · 280 阅读 · 0 评论 -
LeetCod19.删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。class Solution: def removeNthFromEnd(self, head: ListNode...原创 2019-07-24 23:22:51 · 168 阅读 · 0 评论 -
Python用数组实现普通队列、循环队列(LeetCode 622),以及链表队列,
支持动态移动的普通数组队列''' 用数组创建队列并支持动态移位操作 Author by: Lofues'''from typing import Optionalclass ArrayQueue(object): def __init__(self,capacity : int): self._capacity = capacity self._items = ...原创 2019-07-29 12:41:40 · 444 阅读 · 0 评论 -
杭电ACM-1001 C++
问题如下:In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + … + n.InputThe input will consist of a series of integers n, one integer per line.OutputFor each case, output SUM(n) in one li...原创 2019-02-22 09:13:41 · 172 阅读 · 0 评论 -
动态更新的数据结构介绍与对比
支持动态更新的数据结构:散列表、跳表、红黑树对比分析:散列表: 插入删除查找都是O(1) 优点:时间复杂度低 缺点:不能够顺序遍历,动态扩容操作以及散列函数和解决冲突的操作可能会消耗时间 适用场景:适用于那些不需要顺序遍历,数据更新不那么频繁的跳表: 插入删除查找O(logn) 优点:能够顺序遍历 缺点:空间复杂度O(n) 适用场景:不那么在意内存空间的,...原创 2019-08-18 12:40:36 · 589 阅读 · 0 评论
分享