冒泡排序 冒泡排序(Bubble Sort): 一种最简单的交换排序方法,它通过两两比较相邻记录的关键字,如果发生逆序,则进行交换,从而使关键字小的记录如气泡一般逐渐往上‘漂移’(左移),或者使关键字大的记录如石块一样逐渐向下‘坠落’(右移). 算法思想: 从数组头部开始,不断比较相邻的两个元素的大 ...
分类:
编程语言 时间:
2019-06-17 20:32:19
阅读次数:
147
1. 分配饼干 2. 不重叠的区间个数 3. 投飞镖刺破气球 4. 根据身高和序号重组队列 5. 买卖股票最大的收益 6. 买卖股票的最大收益 II 7. 种植花朵 8. 判断是否为子序列 9. 修改一个数成为非递减数组 10. 子数组最大的和 11. 分隔字符串使同种字符出现在一起 保证每次操作都 ...
分类:
编程语言 时间:
2019-06-12 14:01:15
阅读次数:
197
素数分解 整除 最大公约数最小公倍数 1. 生成素数序列 2. 最大公约数 3. 使用位操作和减法求解最大公约数 进制转换 1. 7 进制 2. 16 进制 3. 26 进制 阶乘 1. 统计阶乘尾部有多少个 0 字符串加法减法 1. 二进制加法 2. 字符串加法 相遇问题 1. 改变数组元素使所有 ...
分类:
编程语言 时间:
2019-06-12 14:00:34
阅读次数:
146
快速选择 堆 1. Kth Element 桶排序 1. 出现频率最多的 k 个元素 2. 按照字符出现次数对字符串排序 荷兰国旗问题 1. 按颜色进行排序 1. Kth Element 1. 出现频率最多的 k 个元素 2. 按照字符出现次数对字符串排序 1. 按颜色进行排序 快速选择 用于求解 ...
分类:
编程语言 时间:
2019-06-12 14:00:07
阅读次数:
165
1. 求开方 2. 大于给定元素的最小元素 3. 有序数组的 Single Element 4. 第一个错误的版本 5. 旋转数组的最小数字 6. 查找区间 正常实现 public int binarySearch(int[] nums, int key) { int l = 0, h = nums ...
分类:
编程语言 时间:
2019-06-12 13:52:38
阅读次数:
159
1. 给表达式加括号 2. 不同的二叉搜索树 1. 给表达式加括号 241. Different Ways to Add Parentheses (Medium) Input: "2-1-1". ((2-1)-1) = 0 (2-(1-1)) = 2 Output : [0, 2] public L ...
分类:
编程语言 时间:
2019-06-12 13:52:21
阅读次数:
117
算法思想: 从数组中第一个数开始,依次遍历数组中的每一个数,通过相邻比较交换,每一轮循环下来找出剩余未排序数的中的最大数并”冒泡”至数列的顶端。 算法步骤: (1)从数组中第一个数开始,依次与下一个数比较并次交换比自己小的数,直到最后一个数。如果发生交换,则继续下面的步骤,如果未发生交换,则数组有序 ...
分类:
编程语言 时间:
2019-06-01 19:44:29
阅读次数:
89
[TOC] 声明 本文不介绍dfs、dp算法的基础思路,有想了解的可以自己找资源学习。 本文适合于刚刚接触dfs和dp算法的人,发现两种算法间的内在联系。 本人算法之路走之甚短,如果理解出现问题欢迎大家的指正,我会分享基于我目前理解到的算法思想。 dfs与dp的关系 很多情况下,dfs和dp两种解题 ...
分类:
编程语言 时间:
2019-05-31 19:48:07
阅读次数:
276
1、快速排序的简单介绍 算法思想:基于分治的思想,是冒泡排序的改进型。首先在数组中选择一个基准点(该基准点的选取可能影响快速排序的效率,后面讲解选取的方法),然后分别从数组的两端扫描数组,设两个指示标志(low指向起始位置,high指向末尾),首先从后半部分开始,如果发现有元素比该基准点的值小,就交 ...
分类:
编程语言 时间:
2019-05-27 16:34:33
阅读次数:
110
算法思想:动态规划 实际问题:01背包问题 编写语言:Java <! More 问题描述 给定n种物品和一个背包,物品i的重量为wi,其价值是vi,背包的容量为c,问应如何向背包装入物品,使得背包中的物品价值最大。每个物品拿取或者不拿两种选择。不能选择装入某物品的一部分,也不能装入同一物品多次。 递 ...
分类:
其他好文 时间:
2019-05-22 19:04:47
阅读次数:
103