02 2020 档案

摘要:#1.划分 函数partition用于将数组分为两段,一段返回小于基准值,一段大于基准值。并且基准值到达它应该在的位置。返回基准值的下标。 ##代码: int Partition(int arr[], int left, int right) { int i = left; int j = righ 阅读全文
posted @ 2020-02-28 20:18 four_z 阅读(281) 评论(0) 推荐(0)
摘要:#二叉搜索树转化为双向链表 ##思路: 二叉搜索树的中序遍历就是一个有序序列,对于根节点,当左子树有序之后,把它和左子树的最右节点链接起来。随后遍历右子树,第一个节点是右子树的最左节点,链接起来。 ##代码: void ConvertRecursion(TreeNode* root, TreeNod 阅读全文
posted @ 2020-02-28 19:00 four_z 阅读(141) 评论(0) 推荐(0)
摘要:#字符的所有组合 ##描述: 输入一个字符串,求这个字符串中的字符的所有组合。如:“abc”,组合为"a" "b" c" "ab" "ac" "bc" "abc" ##思路: 对于n个字符,求长度为m的组合,将字符分为两部分,对于当前的字符,要么取,然后再n-1个字符中取m-1个,要么不取,在n-1 阅读全文
posted @ 2020-02-28 17:38 four_z 阅读(141) 评论(0) 推荐(0)
摘要:#最小数栈 ##描述 定义一个栈,操作有pop,push和min。 ##思路: 求栈的最小值,仅仅加入一个变量是不够的,因为弹出当前最小值后,还要记录次最小值。所以需要一个辅助栈。当压入的值小于当前最小值时,同时把他压入辅助栈,否则,再把当前的最小值压入辅助栈。 ##代码: #include<sta 阅读全文
posted @ 2020-02-25 14:37 four_z 阅读(213) 评论(0) 推荐(0)
摘要:#重新排序数组 ##描述 根据特定条件重新排序数组,如将奇数排到偶数前面。将负数排到偶数前面。 ##思路: 设置两个指针,前指针和后指针。将条件作为一个函数传入,两个指针向中间移动,不符和条件的交换。 ##代码: bool fun(int n) { if (n % 2 == 0) return 0; 阅读全文
posted @ 2020-02-24 16:09 four_z 阅读(133) 评论(0) 推荐(0)
摘要:#倒数第k个节点 ##思路: 用两个指针,第一个指针先走k-1步,之后两个节点一同开始走,当第一个节点走到表尾,第二个节点就到了倒数第k个节点。 要注意特殊情况的处理,如传入空指针,k小于链表节点个数。 PS:双指针是常用的方法,找中间节点可以用快慢指针。 ##代码: ListNode* FindN 阅读全文
posted @ 2020-02-24 15:41 four_z 阅读(135) 评论(0) 推荐(0)
摘要:#判断树1中是否有树2 ##思路: 采用递归的方法,先序遍历整棵树,判断当前的树是否有树2,没有的话判断左右子树是否有。 ##代码: bool Tree2InTree1(TreeNode *root1, TreeNode *root2) { if (root1 == NULL) return fal 阅读全文
posted @ 2020-02-23 23:44 four_z 阅读(142) 评论(0) 推荐(0)
摘要:##执行MATLAB命令 MATLAB 是一种解释型的环境。也就是说,只要你给MATLAB一个命令,它就会马上开始执行。 ##MATLAB实践 在">>" 命令提示符下键入一个有效的表达,例如: 5 + 5 然后按 ENTER 键 当点击“执行”按钮,或者按“Ctrl+ E”,MATLAB执行它并返 阅读全文
posted @ 2020-02-23 20:25 four_z 阅读(1170) 评论(0) 推荐(0)
摘要:转载:https://blog.csdn.net/lizi_stdio/article/details/74502986 #一、情况1:实参为二维数组 比如 int a[3][3]; 调用形式 print(a); //指针形式 void print(int** a); //ERROR void pr 阅读全文
posted @ 2020-02-23 20:15 four_z 阅读(1147) 评论(0) 推荐(0)
摘要:#实现power ##思路: 注意base为0,exexponent<0时的情况,求一个数的n次方可以用递归的思想,f(n)=f(n/2)*f(n/2) 偶数 f(n)=f(n/2)*f(n/2)*base 奇数 ##代码: def power(base,exponent): if(equal_ze 阅读全文
posted @ 2020-02-20 17:42 four_z 阅读(304) 评论(0) 推荐(0)
摘要:#旋转数组 ##描述 将有序数组的前n个数移到数组最后称为旋转数组。求数组中最小的元素。 ##思路 顺序查找时间复杂度为O(n),序列分为两段,两段都是有序的,且大多数情况下第一段的数大于第二段,这就可以用二分查找,如[3,4,5,1,2] ,当index1+1=index2时,nums[index 阅读全文
posted @ 2020-02-19 12:24 four_z 阅读(227) 评论(0) 推荐(0)
摘要:#根据前序和中序遍历序列构建二叉树 ##思路: 根据前序序列找到根在中序序列中的位置,从而找到左右子树的中序序列,再根据左右子树的长度,找到它们的前序序列,递归计算。 ##代码: """ 使用先序遍历和中序遍历的结果重建二叉树 """ from collections import deque cl 阅读全文
posted @ 2020-02-19 10:56 four_z 阅读(137) 评论(0) 推荐(0)
摘要:#链表倒序输出 ##思路: 用递归的方法,先输出后面的节点值在输出目前的节点值 ##代码: class node: #用类实现链表节点 def __init__(self,data,next =None): self.data= data self.next=next data=0 next=Non 阅读全文
posted @ 2020-02-19 10:43 four_z 阅读(135) 评论(0) 推荐(0)
摘要:#1.数组找数 ##描述: 一个二维数组,从左到右递增,从上到下递增。要求找到给定整数。 ##思路: 将给定数x与右上角的数t相比,t<x时去掉这一行,t>x时去掉这一列。直到找到。PS:也可以与左下角的数字比较 ##代码 arr=[] n= eval(input('数组行和列:')) for i 阅读全文
posted @ 2020-02-16 20:10 four_z 阅读(132) 评论(0) 推荐(0)
摘要:#1.大数相加 ##思路: 两个数字转换为字符串,为了便于操作,分别逆转字符串,将短的字符串补上‘0’,使得长度相等。各个位分别相加,处理进位问题。最后再将结果倒置,从第一个不为0的字符开始输出 ##代码: #reverse返回一个迭代器,用list() s1=list(reversed(num1) 阅读全文
posted @ 2020-02-15 19:27 four_z 阅读(227) 评论(0) 推荐(0)
摘要:目录 #1.标题 代码: # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 最小只有六级标题 #2.加粗 代码: **加粗** 加粗 #3.斜体 *倾斜* 倾斜 #4.高亮 ==高亮== 高亮 #5.上标 2<sub>2</sub> 22 #6. 阅读全文
posted @ 2020-02-13 18:40 four_z 阅读(226) 评论(0) 推荐(0)