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

摘要:51.52 N皇后问题 描述: 思路: 回溯 53. 最大子序和 描述: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 思路: 动态规划。状态变量dp[i]表示当前第i个元素的最大子序和。dp[i]=max(dp[i-1],0)+num[i] 54. 螺旋矩阵 描述: 输入: 阅读全文
posted @ 2020-07-05 07:40 _Meditation 阅读(202) 评论(0) 推荐(0) 编辑
摘要:1. 两数之和 描述:nums = [2, 7, 11, 15], target = 9 返回[0, 1] 思路:双指针,一个从前,一个从后。(数组必须排序) 2. 两数相加 描述: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 4 阅读全文
posted @ 2020-07-03 21:35 _Meditation 阅读(216) 评论(0) 推荐(0) 编辑
摘要:LRU:最近最少使用。不管是读还是写,都是对此数据刷新他的时间(时间由双向链表的顺序决定)。 class LRUCache { private class Node{ private int key; private int value; private Node pre; private Node 阅读全文
posted @ 2020-07-03 08:52 _Meditation 阅读(322) 评论(0) 推荐(0) 编辑
摘要:首先,假设点是n个,编号为1到n。我们要分治求,则找一个中间的编号mid,先求出1到mid点的最近距离设为d1,还有mid+1到n的最近距离设为d2。这里的点需要按x坐标的顺序排好,并且假设这些点中,没有2点在同一个位置。(若有,则直接最小距离为0了)。 然后,令d为d1, d2中较小的那个点。如果 阅读全文
posted @ 2020-07-03 08:47 _Meditation 阅读(907) 评论(0) 推荐(0) 编辑
摘要:1. 递归形式: 1 def Levenshtein_Distance_Recursive(str1, str2): 2 3 if len(str1) == 0: 4 return len(str2) 5 elif len(str2) == 0: 6 return len(str1) 7 elif 阅读全文
posted @ 2020-04-16 09:48 _Meditation 阅读(169) 评论(0) 推荐(0) 编辑
摘要:trie人称字典树,又称前缀树,是一个比较高效的字符串检索的存储方式。 trie的应用可以详见leetcode。 DoubleArrayTrie是一个trie的升级版,通过两个数组来实现trie。性能有所提高。 https://www.cnblogs.com/zhangchaoyang/articl 阅读全文
posted @ 2020-04-01 16:09 _Meditation 阅读(258) 评论(1) 推荐(0) 编辑
摘要:1. 暴力算法 --bf算法 这是世界上最简单的算法了。 首先将匹配串和模式串左对齐,然后从左向右一个一个进行比较,如果不成功则模式串向右移动一个单位。 假设匹配串文本长度为n,模式串长度为m,最差的情况下,时间复杂度为O(m*n). bf算法每次匹配不成功的时候,前面匹配成功的信息都被当作废物丢弃 阅读全文
posted @ 2019-12-13 16:26 _Meditation 阅读(3610) 评论(0) 推荐(1) 编辑

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