习题1 1.1. 用于计算gcd(m,n)的欧几里得算法 1.1.1. 算法描述 辗转相除法,又名欧几里得算法(Euclidean algorithm),是求最大公约数(greater common divisor)的一种,通常做法是:用较小的数去除较大的数,用第二余数再去除第一余数,最终我们可以得 ...
分类:
编程语言 时间:
2019-09-03 09:54:40
阅读次数:
121
原文引用https://www.dazhuanlan.com/2019/08/25/5d625b5c4d1ea/ 本文通过 53. Maximum Subarray & 152. Maximum Product Subarray 分析根据动态规划思路进行问题求解中的一个关键环节:子问题的拆分和求解。... ...
分类:
编程语言 时间:
2019-08-25 20:22:37
阅读次数:
155
本人最近几年一直在做java后端方面的技术面试官,而在最近两周,又密集了面试了一些java初级和高级开发的候选人,在面试过程中,我自认为比较慎重,遇到问题回答不好的候选人,我总会再三从不同方面提问,只有当反复确认能力不行才会下结论,相反,如果候选人给我的印象不错,我也会从多个角度来衡量,以免招进会说 ...
分类:
其他好文 时间:
2019-08-17 15:09:33
阅读次数:
140
1、什么是归并排序? 归并排序是属于分冶法的一种排序方式,归并排序将待排序的元素序列分成两个长度相等的子序列,为每一个子序列排序,然后再将他们合并成一个子序列。合并两个子序列的过程也就是两路归并。 2、时间复杂度和空间复杂度 归并排序是一种稳定的排序算法,一般用于对总体无序,但是各子项相对有序的数列 ...
分类:
编程语言 时间:
2019-08-17 14:34:55
阅读次数:
77
#include<iostream> #include<malloc.h> using namespace std; typedef struct { int length;//保存长度 int data[40];//数组 } SqList; /*算法1:设计一个高效的算法,将顺序表中的所有元素逆置... ...
分类:
编程语言 时间:
2019-08-15 19:24:47
阅读次数:
249
基于jdk1.8ReentrantLock源码分析,学习底层数据结构、算法、设计理念、进制转换、代码艺术、并发编程、独占共享锁的乐趣、公平锁非公平锁的竞争
分类:
其他好文 时间:
2019-08-15 17:33:09
阅读次数:
96
一、分治法 递归,找最大值最小值,整数相乘,归并排序,快速排序,线性时间选择,最近点对问题 二、动态规划 0-1背包问题 ,矩阵相乘问题,装配线调度问题,最长公共子序列,最优二分检索树,凸多边形最优三角剖分 三、贪心法 背包问题,活动选择问题,哈夫曼编码,最小生成树算法(Kruskal 和 Prim ...
分类:
编程语言 时间:
2019-08-12 23:38:19
阅读次数:
123
基于jdk1.8AQS源码分析,学习底层数据结构、算法、设计理念、进制转换、代码艺术、并发编程、独占共享锁的乐趣
分类:
其他好文 时间:
2019-08-09 09:21:13
阅读次数:
80
基于jdk1.8HashMap源码分析,学习底层数据结构、算法、设计理念、进制转换、代码艺术
分类:
其他好文 时间:
2019-08-06 21:25:30
阅读次数:
178
基于jdk1.8LinkedList源码分析,学习底层数据结构、算法、设计理念、进制转换、代码艺术
分类:
其他好文 时间:
2019-08-06 09:15:52
阅读次数:
74