题目描述 输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 (PS:字符串中可能有重复元素) 思路 每次遍历一遍整个数组,选择一个还没有被排列的字母。由于给定字符串中可能含有重复字母,应当用Set来存储排列序列,避免重复。 s为给定字符串,u ...
分类:
其他好文 时间:
2020-06-28 13:44:19
阅读次数:
63
树、森林的遍历 树的先根遍历 //树的先根遍历 void PreOrder(TreeNode *R){ if(R!=NULL){ visit(R);//访问根节点 while(R还有下一个子树T){ PreOrder(T); } } } 将上述的树转换为二叉树 树的先根遍历序列与这棵树相应的二叉树的 ...
分类:
其他好文 时间:
2020-06-28 13:28:31
阅读次数:
75
二叉排序树(BST) 二叉排序树,又称二叉查找树(BST) 左子树结点值<根节点值<右子树结点值 如果用中序遍历来遍历一棵二叉排序树的话,可以得到一个递增的有序数列 左根右 二叉排序树的查找 //二叉排序树结点 typedef struct BSTNode{ int key; struct BSTN ...
分类:
编程语言 时间:
2020-06-28 13:17:50
阅读次数:
111
线索二叉树(找前驱/后继) 建立线索的初衷就是为了在一个结点中能够更方便找到前驱结点和后继结点。 中序线索二叉树 先序线索二叉树 后序线索二叉树 中序线索二叉树找中序后继 //找到以p为跟的子树中,第一个被中序遍历的结点 ThreadNode *Firstnode(ThreadNode *p){ / ...
分类:
其他好文 时间:
2020-06-28 12:47:39
阅读次数:
107
(一)题目: 求两个乘积最小的数 题目: 输入一个递增排序的数组和一个数字S,在数组中查找两个数, 使得他们的和正好是S,如果有多对数字的和等于S,输出乘积最小的两个数 思路: 定义两个指针,分别从前面和后面进行遍历,间隔越远的乘积越小,所以是最先出现的两个数乘积最小 (二)代码及测试 packag ...
分类:
其他好文 时间:
2020-06-28 11:20:24
阅读次数:
60
find 是实时查找工具,通过遍历指定路径完成文件查找。 工作特点: 1)查找速度略慢 2)精确查找 3)实时查找 4)查找条件丰富 5)可能只搜索用户具备读取和执行权限的目录 格式: find [OPTTON]...[查找路径] [查找条件] [处理动作] 查找路径:指定具体目标路径;默认为当前目 ...
分类:
其他好文 时间:
2020-06-28 09:51:16
阅读次数:
49
一、思维导图: 二、需要留意的点 链式结构可以进行二分查找,但是不能在对数时间内完成,因为要对数字下标进行随机访问,实际都得遍历一遍,需要O(n) 二分查找应用场景的局限性: (1)基于顺序表的存储结构; (2)针对有序数据; (3)数据量小且比较操作不耗时时 (4)数据量不能太大(需要连续的内存空 ...
分类:
其他好文 时间:
2020-06-27 20:12:59
阅读次数:
66
方法一 利用set 空间$O(n)$ 时间 \(O(n)\) 利用一个set存储映射关系, 然后直接从1 - size遍历找出第一个不在set中的元素就可以 int firstMissingPositive(vector<int>& nums) { set<int> s; for (int i = ...
分类:
其他好文 时间:
2020-06-27 19:48:19
阅读次数:
55
题目链接 41. 缺失的第一个正数 题目分析 这个题如果没有下面的要求的话简直就是白给,直接一个map扫一次数组或者排序就行。 但是它这个既然提到了,我们还是得按照别人的要求做。 我们在剑指Offer里面有一题的思想和这里差不多,就是将满足要求的数放置到对应的下标上,由于题目是正整数,我们的数值应该 ...
分类:
其他好文 时间:
2020-06-27 17:31:53
阅读次数:
50
#内建函数 ###sorted sorted(iterable,*,key=None,reverse=False) 返回一个 新已排序的列表 key 指定带有单个参数的函数,用于从 iterable 的每个元素中提取用于比较的键 (例如 key=str.lower)。 默认值为 None (直接比较 ...
分类:
其他好文 时间:
2020-06-27 16:11:27
阅读次数:
51