代码源自该视频 算法思想:选择一个中心点,将比中心点小的移动到左边,反之移动到右边; 这时形成两个子序列,对子序列递归直至,每个序列只有一个元素为止 时间复杂度 最好的情况是O(nlogn) 最差的情况是O(n²) 特点 如果基本有序 则会变成冒泡排序,时间复杂度为O(n²) package wha ...
分类:
编程语言 时间:
2021-06-11 18:23:48
阅读次数:
0
T1打包 一个二维01背包的板子,状态转移方程$$Dp_{j,k}=max\left \{Dp_{j,k},Dp_{j-Weight_i,k-V_i}+Value_i\right \}$$ T2暗黑破坏神 大概类似于分组背包,开$long\ long$,在更新$Dp$的过程中记录路径,递归输出即可。 ...
分类:
其他好文 时间:
2021-06-11 18:06:14
阅读次数:
0
公平锁 非公平锁 可重入锁(递归锁) package com.model.lock; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; import java.util.concurrent.l ...
分类:
编程语言 时间:
2021-06-11 18:03:17
阅读次数:
0
给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。 解法一:深度优先搜索 public ...
分类:
其他好文 时间:
2021-06-10 18:17:17
阅读次数:
0
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2: 输入:n = 1输出:["()"] 解法一:递归 教会我程序是一步 ...
分类:
其他好文 时间:
2021-06-10 17:38:58
阅读次数:
0
简介 递归的算法很巧妙. 算法思想: 判断递归终止条件 将链表划分成两部分 进行递归判断左右 将返回的两部分头结点, 进行有序合并 返回 头结点 code /** * Definition for singly-linked list. * struct ListNode { * int val; ...
分类:
编程语言 时间:
2021-06-10 17:32:08
阅读次数:
0
我非常惭愧, 学计算机也好几年了, 居然现在还不会写快排, 可见我水平有多低下(而且现在我也就刚学会递归版, 不会迭代版). 而且我感觉这个非常容易写错. 所以我估计这篇文章我可能会不断更新. import random def quicksort(a,lo,hi): if(lo==hi): ret ...
分类:
编程语言 时间:
2021-06-08 22:52:01
阅读次数:
0
1.递归就是:A方法调用A方法,自己调用自己 2.利用递归可以用简单的程序来解决一些复杂的问题,它通常把一个大型复杂的问题蹭蹭转化为一个与原问题相似的规模较小的问题来求解,递归策略只需要少量的程序就可描述出解题过程中所需要的多次重复计算,大大的减少了程序的代码量,递归的能力在于用有限的语句来定义对象 ...
分类:
编程语言 时间:
2021-06-08 22:37:09
阅读次数:
0
全文引用:图解排序算法之归并排序 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之 ...
分类:
编程语言 时间:
2021-06-05 18:27:00
阅读次数:
0
简介 当某个类加载器需要加载某个.class文件时, 它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类。 参考链接 https://www.jianshu.com/p/1e4011617650 类加载器类别 BootstrapClassLoade ...
分类:
编程语言 时间:
2021-06-05 17:41:06
阅读次数:
0