摘要:
归并排序 首先简单复习一下归并排序 class Solution { public void divide(int[] nums,int l,int r){ if(l < r){ int mid = (r + l) / 2; divide(nums,l,mid); divide(nums,mid + 阅读全文
2022年8月8日 #
2022年7月19日 #
摘要:
题目来源:排序链表 就是对链表进行排序,题目中另外一个要求就是使用$O(nlogn)$时间复杂度的算法,对于链表排序,比较好的办法就是递归排序 基本的算法流程如下 确定链表中点(可以使用快慢指针法) 将链表对半分,分别排序 有序链表合并 1、快慢指针 对于一个链表,想要获取其中点,可以定义两个指针, 阅读全文
摘要:
题目来源:合并两个有序链表 两个链表有序,这个很类似于归并排序的归并过程,但是数组的归并过程会创建一个临时数组,这里如果创建一个临时链表开销就比较大了,因此需要考虑原地排序算法 非递归方案 首先我们定义一个ans节点,用来保存排序后的头节点 然后定义一个prev节点,表示经过排序后的当前节点 首先比 阅读全文
2022年5月7日 #
摘要:
1、DHCP客户端以广播的形式发送DHCP Discover报文 2、所有的DHCP服务端都可以接收到这个DHCP Discover报文,所有的DHCP服务端都会给出响应,向DCHP客户端发送一个DHCP Offer报文(初始状态) 3、DHCP客户端会收到很多个DHCP服务端发送过来的Offer报 阅读全文
2022年3月19日 #
摘要:
最大正方形 首先说一下暴力方法,就是对于每一个元素,如果是1,那么就判断他的左上角是不是1,如果是,就扩展这个正方形,查看对应的一列和一行是不是全都是1,如果是就继续扩展 暴力法 虽然说我用的是动态规划,但是本质上还是暴力搜索 class Solution { public: int maximal 阅读全文
2022年3月7日 #
摘要:
并查集 并查集的作用就是为了快速判断两个结点是否是联通的,可以用来判断公共祖先等问题 并查集主要的任务就是维护find和union函数 public class UnionFind { public int[] root; public UnionFind(int Size){ root = new 阅读全文
2022年3月1日 #
摘要:
(题目链接)[]https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree/] /** * Definition for a binary tree node. * public class TreeNode 阅读全文
摘要:
二叉树的遍历分为 前序遍历 中序遍历 后序遍历 前序遍历 public void preTraverse(TreeNode root) { if(root != null){ System.out.print(root.value); preTraverse(root.left); preTrave 阅读全文