概述 前面算法系列文章有写过分治算法基本原理和实践,对于分治算法主要是理解递归的过程。二分法是分治算法的一种,相比分治算法会简单很多,因为少了递归的存在。 在计算机科学中,二分查找算法(英语:binary search algorithm),也称折半搜索算法(英语:half-interval sea ...
分类:
其他好文 时间:
2021-07-26 16:54:02
阅读次数:
0
递归遍历文件夹,对比文件md5 首先,需要引用 md5 的相关代码,参考这篇文章,防止链接内容被删除,这里再记录一次: md5.h #ifndef MD5_H #define MD5_H #include <string> #include <fstream> /* Type define */ t ...
分类:
编程语言 时间:
2021-07-16 17:44:14
阅读次数:
0
前言: 冒泡,选择:使用了普通双指针法 插入,快速,归并:使用了二分法,递归 冒泡排序 原理:不断比较相邻两个数得大小,把较大的数交换到靠后的位置 def bubbleSort(iList): '''冒泡排序 ''' if len(iList) <= 1: return iList for i in ...
分类:
编程语言 时间:
2021-07-16 17:32:50
阅读次数:
0
快速排序: 总体最优,数据大时性能最好 具体实现:设置一个基准值,小于基准值放左边,大于基准值放右边,最后递归继续排左右两侧的,最后排完后合并 /** * 快速排序 * * @param $array * @return array */ public function sort($array): ...
分类:
编程语言 时间:
2021-07-12 18:06:10
阅读次数:
0
Problem \(\text{Solution:}\) 这题唯一需要学习 or 复习的点就是它的查询了。 这东西一眼的维护左右最长连续的 \(0\) 的长度就做完了。标记什么的都很简单。代码量略微大一点。 注意在询问的时候: 如果完全在左右区间,就分别递归。 否则,我们还需要考虑跨越区间的最值。那 ...
分类:
其他好文 时间:
2021-07-05 17:12:33
阅读次数:
0
看见一句话,感觉很好,记录一下:贵有恒,何须三更醒五更眠。最无益,莫过一日曝十日寒。 谈到中序遍历,常规的思路一个是递归,一个是迭代,其中迭代的思想需要显式的维护一个栈,以此来辅助遍历,但这连两种方法都不能达到O1的空间复杂度。刷题的时候看到一个巧妙的方法,利用二叉树中的闲散指针,每个节点访问两次, ...
分类:
其他好文 时间:
2021-07-05 16:53:36
阅读次数:
0
方法一:递归 遍历即从跟开始,递归的先访问左节点再访问右节点。中序遍历在访问完左节点后访问该节点的值。 1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode ...
分类:
其他好文 时间:
2021-07-02 15:49:51
阅读次数:
0
changeData (data) { const arr = [] if (data.length !== 0) { data.forEach(item => { const obj = {} obj.id = item.path obj.label = item.name if (item.ch ...
分类:
其他好文 时间:
2021-07-01 16:42:14
阅读次数:
0
题目: 思路: 根据前序遍历的第一个数我们可以知道 根节点 根据 根节点 去中序遍历中可以分出左树 与 右树 运用极限逼近的思想,假设只有三个数据 前序【3,9,20】 中序【9,3,20】 去设计算法: 我们将中序中的数据存入map 中 value 存值得下标,根据蓝色字的思想,递归去构建树 (一 ...
分类:
其他好文 时间:
2021-06-28 20:54:30
阅读次数:
0
代码演示 没什么可说的直接看代码 <?php namespace app\controller; class Category { //模拟假数据 protected static function arr() { $rows = [ [ 'id' => '1', 'name' => '一级菜单', ...
分类:
Web程序 时间:
2021-06-28 19:52:45
阅读次数:
0