算法与数据结构
CJYCathy
这个作者很懒,什么都没留下…
展开
-
JavaScript数据结构——栈和队列
栈栈的特点是先进后出LIFO,数据进出都在栈顶,另一端叫栈未文本编辑器的“撤消”操作。每次将文本添加到文本编辑器事,该文本被压入栈中。其中第一次添加的文本代表栈的底部(栈底);最后一次的修改表示栈的顶部(栈顶)。如果用户希望撤销最后一次修改,则删除处于栈的顶部的那段文本,这个过程可以不断重复,一直到栈中没有更多内容,这时我们会得到一个空白文件。...原创 2020-03-17 15:01:27 · 252 阅读 · 0 评论 -
JavaScript数据结构——数组
数组数组是一种基本的数据结构,用于按顺序存储元素的集合。但是元素可以随机存取,因为数组中的每个元素都可以通过数组索引来识别。在JavaScript的数组对应Array对象Array对象leetcode (easy) 724. 寻找数组的中心索引给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于...原创 2020-03-16 12:20:16 · 880 阅读 · 0 评论 -
算法和数据结构(Python)——动态规划
leetcode 1143. (medium) 最长公共子序列给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「...原创 2020-03-08 17:27:50 · 374 阅读 · 0 评论 -
算法和数据结构(Python)——广度优先算法(BFS)
适用情况给定初始状态跟目标状态,要求从初始状态到目标状态的最短路径。例题一在给定的网格中,每个单元格可以有以下三个值之一:值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。输入:[[2,1,1],[1,1,0],[...原创 2020-03-04 22:37:55 · 352 阅读 · 0 评论 -
算法和数据结构(Python)——回溯法求排列组合
适用情况需要找数组中数字的组合或排列例一 子集leetcode 78 (medium)给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。示例:Input: [1, 5, 3]Output: [], [1], [5], [3], [1,5], [1,3], [5,3], [1,5,3]解题思路:迭代,从空元素开始,循环每加入一个数组中的数值都相当于在上一个...原创 2020-02-24 12:28:56 · 1572 阅读 · 0 评论 -
算法和数据结构(Python)——区间合并
适用情况当你需要产生一堆相互之间没有交集的区间的时候当你听到重叠区间的时候解决思路:把每个区间按start排序,区间起始点为最小的start循环判断两个区间是否重叠(对于很多元素的对比,化简的思路是先只看两个元素怎么比较,然后循环迭代)重叠则找max end;不重叠则加入一个新区间元素抽象模式intervals.sort(<排序>)for <进入循环&g...原创 2020-02-22 10:09:32 · 1420 阅读 · 0 评论 -
算法和数据结构(JavaScript+Python)——双指针之滑动窗口
滑动窗口 Sliding Window适用情况:input是一些线性结构如链表,数组,字符串等,求最长/最短子字符串或是某些特定的长度要求解决模式:设置window:windowStart、windowEnd(在for循环中设置,小于输入列表的长度)、windowSum(窗口在一个位置上的结果,比如要求和)、result(列表用来存结果)进入windoEnd的循环for,在窗口内进行执...原创 2020-02-18 01:33:21 · 325 阅读 · 0 评论