Zicon Blog

知识不负我,我亦不负ACG

数据结构最优解之链表Lab2.1

链表的公共部分

“非连续非顺序、动态地进行存储分配的存储结构“ 前言 接下来,Zicon将正式开展关于链表的学习总结哦。 正文 题目:打印两个链表的公共部分 要求是:对于两个有序链表的头指针head1、head2,打印两个链表的公共部分 思路分析 对有序链表,所以对两个链表的头指针开始进行遍历判断。 如果head1的值小于head2,head1后移。 如果head1的值...

数据结构最优解之栈与队列Lab8附加

最大子矩阵

“程序设计中被广泛使用的两种线性结构“ 正文 题目:求最大子矩阵的大小 要求是:给定一个矩阵map,其中值可正可负,求其中所有矩形区域中元素之和最大的子矩阵。 思路分析 假定原始矩阵的行数为M,那么对于子矩阵,它的行数可以是1到M的任何一个数,而且,对于一个K行(K < M)的子矩阵,它的第一行可以是原始矩阵的第1行到 M - K + 1 的任意一行。 ...

数据结构最优解之栈与队列Lab9

数值差符合一定大小的子数组

“程序设计中被广泛使用的两种线性结构“ 正文 题目:求最大值与最小值的差小于或等于num的子数组数量 要求是:对于数组arr和整数num,共返回有多少个子数组满足于max - min <= num。设数组长度为N,时间复杂度为O(N)。 思路分析 一般思路 对数组所有子数组遍历寻找最大最小值,判断是否符合要求。 时间复杂度为O(N^3)。 进阶思路...

数据结构最优解之栈与队列Lab8

最大子矩阵

“程序设计中被广泛使用的两种线性结构“ 正文 题目:求最大子矩阵的大小 要求是:给定一个整数矩阵map,其中值只有1与0,求其中全是1的所有矩形区域中最大的子矩阵中1的数量。当矩阵大小为N * W时,时间复杂度要求为O(N * W)。 思路分析 矩阵行数为N,以每一行做切割,统计以当前行为底的情况下,每个位置往上的1的数量。使用数组heigh表示。 而在每一次...

数据结构最优解之栈与队列Lab7

构造最大生成树

“程序设计中被广泛使用的两种线性结构“ 正文 题目:构造数组的最大生成树MaxTree 要求是:给定一个没有重复元素的数组arr,满足生成树上每一个子节点都比父节点小。并且如果数组长度为n,时间复杂度为O(N),空间复杂度为O(N)。 树的节点如下: class Node { public int value; public Node left; public N...

数据结构最优解之栈与队列Lab6

生成窗口最大值数组

“程序设计中被广泛使用的两种线性结构“ 正文 题目:生成窗口的最大值数组 要求是:一个整数数组arr和一个大小为w的窗口从数组最左边滑到最右边,返回过程中,每一次窗口移动时生成的最大值。 提示:假设数组长度为n,窗口大小为w,则一共产生n-w+1个最大值。 思路分析 一般思路 常规思路是随着窗口的移动,遍历窗口内数组找出最大值,但是这种实现方法的时间复杂度为O...

数据结构最优解之栈与队列Lab5

以栈排栈

“程序设计中被广泛使用的两种线性结构“ 正文 题目:用一个栈实现另一个栈的排序 要求是:只使用一个辅助栈将另一个栈中整数元素按从大到小的顺序进行排序。 解题思路: 假设要排序的栈为stack,辅助栈为stack2,在stack上进行pop操作,弹出的元素记为num。进行如下判断: 当num小于或等于stack2的栈顶元素或stack2为空,num压入stack2...

数据结构最优解之栈与队列Lab4

猫狗队列

“程序设计中被广泛使用的两种线性结构“ 前言 第四题来了。 正文 题目:猫狗队列 相关类: class Pet { private String type; public Pet(String type) { this.type = type; } public String getPetType() { return this.type; } ...

数据结构最优解之栈与队列Lab3

逆序一个栈

“程序设计中被广泛使用的两种线性结构“ 前言 今天记录第三、四题。 正文 题目:仅用递归函数和栈操作逆序一个栈 题目要求使用递归函数,因此不考虑用两个栈的压入弹出实现。 分析题目,可以得出题目的关键一个是得到栈底元素,另一个是对栈底元素的逆序重新压入栈。 这些都可以通过递归函数实现。 代码实现 public class Lab1_3 { // 递归获取并移除栈...

Python物语的第一步

编写Python程序的环境搭建

“接触一下Python” 前言 本系列博客是Zicon对Python的爬虫感兴趣进行学习的总结。 学习Python,先从学会搭建开始。 Python的下载 Zicon在这里学习的是Python3.0。下载网址点击这里 在官网中鼠标移至Downloads,而后点击下拉菜单的Python 3.6.0即可下载Python。 Python的安装请参考这里 编写Pyth...