随笔分类 - 数据结构与算法
摘要:[TOC] # 有效的括号```给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示例4:输入: "([...
阅读全文
摘要:[TOC] # 实现一个function foo($num) 完成如下功能```// foo(1) = [[1]];// foo(2) = [ [1,2]// [4,3] ];// foo(3) = [ [7,8,9]// [6,1,2]// [5,4,3] ];// foo(4) = [ [7,8,9,10]// ...
阅读全文
摘要:[TOC] # 映射映射,或者射影,在数学及相关的领域经常等同于函数。基于此,部分映射就相当于部分函数,而完全映射相当于完全函数。映射(Map)是用于存取键值对的数据结构(key,value),一个键只能对应一个值且键不能重复。# 实现映射的实现方式可以使用链表或二叉树实现。给定两个数组,编写一个函数来计算它们的交集。```示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:...
阅读全文
摘要:[TOC] # 输入一个字符串,打印出该字符串的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串 abc,acb,bac,bca,cab,cba。# 题解了解下排列的数学知识:排列的定义:从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列;从n个不同元素中取出m(m≤n)个元素的所有排列的...
阅读全文
摘要:[TOC] # [唯一摩尔斯密码词](https://leetcode-cn.com/problems/unique-morse-code-words)国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串,比如: "a" 对应 ".-", "b" 对应 "-...", "c" 对应 "-.-.", 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-"...
阅读全文
摘要:[TOC] # [总持续时间可被 60 整除的歌曲](https://leetcode-cn.com/problems/pairs-of-songs-with-total-durations-divisible-by-60)在歌曲列表中,第 i 首歌曲的持续时间为 time[i] 秒。返回其总持续时间(以秒为单位)可被 60 整除的歌曲对的数量。形式上,我们希望索引的数字i < j 且有(t...
阅读全文
摘要:[TOC] # 集合集合,是由一堆无序的、相关联的,且不重复的内存结构【数学中称为元素】组成的组合;## 实现实现方式主要分为两种:二分搜索树、链表;二分搜索树实现代码参考:[二分搜索树操作类](https://github.com/WalkingSun/Jump/blob/master/models/TreeBinarySearch.php)[集合实现类](https://github.com/...
阅读全文
摘要:[TOC] # 树树结构是天然的组织结构,如计算机中的文件夹,mysql的存贮结构。使用树结构存储后,出奇高效分布:- 二分搜索树- 平衡二叉树:AVL;红黑树- 堆;并查集- 线段树;Tire(字典树,前缀树)## 二叉树给定一个带有头结点head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 ...
阅读全文
摘要:[TOC] # 链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。形式:单链表、双链表、跳表(redis 集合数据结构就是跳表实现,时间复杂度O(log N))跳表了解:https://lotabout.me/2018/skip-list/# php实现对链表的增删改...
阅读全文
摘要:[TOC] [相同的树](https://leetcode-cn.com/problems/same-tree/)给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。```示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1...
阅读全文
摘要:[TOC] 链表处理## 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 力扣链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/ 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 ...
阅读全文

浙公网安备 33010602011771号