随笔分类 -  数据结构和算法

数据结构的python实现
摘要:Classical Question c1.Quick Sort / Top K problem class Solution: """ @param n: An integer @param nums: An array @return: the Kth largest element """ d 阅读全文
posted @ 2024-09-21 14:32 silence_cho 阅读(32) 评论(0) 推荐(0) 编辑
摘要:1,递归算法 递归算法是将复杂的问题分解为同类更简单的子问题,直到子问题可以被解决的算法思想。在下面的代码中,分别用普通方法和递归算法求list中数据累加之和,递归算法的求和过程如下图所示 #coding:utf-8 #普通方法 def listsum(numlist): total = 0 for 阅读全文
posted @ 2024-09-21 14:22 silence_cho 阅读(60) 评论(0) 推荐(0) 编辑
摘要:开始刷leetcode,记录下整个过程,留着慢慢学习和优化。 1.两数之和(Two sum) #coding:utf-8 # 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 # 你可以假设每种输入只会对应一个答案。但是,你 阅读全文
posted @ 2024-09-21 14:19 silence_cho 阅读(16) 评论(0) 推荐(0) 编辑
摘要:跳跃表 http://www.dannysite.com/blog/228/ https://cloud.tencent.com/developer/news/387722 LRU (least-recently used) 利用OrderedDict实现 利用dict+双端链表实现 https:/ 阅读全文
posted @ 2024-09-21 14:19 silence_cho 阅读(24) 评论(0) 推荐(0) 编辑
摘要:1. 剑指 Offer 03. 数组中重复的数字 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入:[2, 3, 1, 0, 2, 5, 3]输 阅读全文
posted @ 2024-09-21 13:11 silence_cho 阅读(101) 评论(0) 推荐(0) 编辑
摘要:接着上篇lintcode刷题笔记(一),继续刷题lintcode,练速度。。 (六)深度优先搜索(DFS, Deepth First Search) 680. Split String Description 给一个字符串,你可以选择在一个字符或两个相邻字符之后拆分字符串,使字符串由仅一个字符或两个 阅读全文
posted @ 2021-05-16 13:08 silence_cho 阅读(234) 评论(0) 推荐(0) 编辑
摘要:最近开始刷lintcode,记录下自己的答案,数字即为lintcode题目号,语言为python3,坚持日拱一卒吧。。。 (一). 回文字符窜问题(Palindrome problem) 627. Longest Palindrome 给出一个包含大小写字母的字符串。求出由这些字母构成的最长的回文串 阅读全文
posted @ 2019-07-27 16:09 silence_cho 阅读(3931) 评论(0) 推荐(0) 编辑
摘要:1. 图的相关概念 树是一种特殊的图,相比树,图更能用来表示现实世界中的的实体,如路线图,网络节点图,课程体系图等,一旦能用图来描述实体,能模拟和解决一些非常复杂的任务。图的相关概念和词汇如下: 顶点vertex:图的节点 边Edge:顶点间的连线,若边具有方向时,组成有向图(directed gr 阅读全文
posted @ 2018-12-15 14:33 silence_cho 阅读(1462) 评论(0) 推荐(0) 编辑
摘要:1,二叉树(Binary tree) 二叉树:每一个节点最多两个子节点,如下图所示: 相关概念:节点Node,路径path,根节点root,边edge,子节点 children,父节点parent,兄弟节点sibling, 子树subtree,叶子节点leaf node, 度level,树高high 阅读全文
posted @ 2018-12-08 13:59 silence_cho 阅读(1673) 评论(0) 推荐(0) 编辑
摘要:1, 无序链表(Unordered linked list) 链表是有若干个数据节点依次链接成的数据结构,如下图所示,每一个数据节点包括包括数据和一个指向下一节点的指针。(python中的list就是由链表来实现的) 无序链表操作: python实现无序链表 定义了Node类和UnorderedLi 阅读全文
posted @ 2018-12-02 18:14 silence_cho 阅读(1053) 评论(0) 推荐(0) 编辑
摘要:1,查找算法 常用的查找算法包括顺序查找,二分查找和哈希查找。 1.1 顺序查找(Sequential search) 顺序查找: 依次遍历列表中每一个元素,查看是否为目标元素。python实现代码如下: #无序列表 def sequentialSearch(alist,item): found = 阅读全文
posted @ 2018-12-02 18:11 silence_cho 阅读(1132) 评论(0) 推荐(0) 编辑
摘要:1,双端队列定义 双端队列:其两端都可以入列和出列的数据结构,如下图所示,队列后面(rear)可以加入和移出数据,队列前面(front)可以加入和移出数据 双端队列操作: 操作示例: 2, 用python实现双端队列 Deque的代码实现如下: 3,Deque的应用 回文检查(Palindrome 阅读全文
posted @ 2018-11-29 21:35 silence_cho 阅读(2433) 评论(0) 推荐(0) 编辑
摘要:1,队列的定义 队列:是一种先进先出的数据结构,如下图所示,现进去的数据在队列前面(front),先出队列,后进入队列的数据在后面(rear),后出队列。 队列常用操作: 操作示例: 2,用python实现队列 可以用python的list来实现队列,其定义如下面代码所示。 (其中enqueue和d 阅读全文
posted @ 2018-11-29 20:40 silence_cho 阅读(1594) 评论(0) 推荐(0) 编辑
摘要:1,栈的定义 栈:先进后出的数据结构,如下图所示,先进去的数据在底部,最后取出,后进去的数据在顶部,最先被取出。 栈常用操作: s=Stack() 创建栈 s.push(item) 将数据item放在栈的顶部 s.pop() 返回栈顶部数据,并从栈中移除该数据 s.peek() 返回栈顶部数据,但不 阅读全文
posted @ 2018-11-28 22:02 silence_cho 阅读(11791) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示