前言 HashMap 是无论在工作还是面试中都非常常见常考的数据结构。 比如 Leetcode 第一题 Two Sum 的某种变种的最优解就是需要用到 HashMap 的,高频考题 LRU Cache 是需要用到 LinkedHashMap 的。 HashMap 用起来很简单,底层实现也不复杂,先来 ...
分类:
其他好文 时间:
2020-06-20 15:44:36
阅读次数:
37
前言 HashMap 是无论在工作还是面试中都非常常见常考的数据结构。 比如 Leetcode 第一题 Two Sum 的某种变种的最优解就是需要用到 HashMap 的,高频考题 LRU Cache 是需要用到 LinkedHashMap 的。 HashMap 用起来很简单,底层实现也不复杂,先来 ...
分类:
其他好文 时间:
2020-06-20 14:13:27
阅读次数:
68
贪心算法就是遵循某种既定原则,不断地选取当前条件下最优的选择来构造每一个子步骤的解决方案,直到获得问题最终的求解。在对问题求解时,总是做出在当前看最好的选择。 也就是说,不从整体最优上考虑,所做的仅是在某种意义上的局部最优解。 利用贪心算法解题,需要解决两个问题 问题是否适合用贪心算法求解 所求问题 ...
分类:
编程语言 时间:
2020-06-20 01:18:11
阅读次数:
79
题目链接 #解题思路 在最优解的情况下,一堆纸牌肯定是最多只能经过一次的,这样,我们不需要贪心的如何移动才能最优,只需在一堆纸牌只经过一次的情况下需要传递的纸牌数。设$x_i$为第$i$堆纸牌需要传递的牌数,然后这里我们以最左边的一堆做起点,那么对于第$i$堆,它所需要移动的牌数就是前面移动过来的牌 ...
分类:
其他好文 时间:
2020-06-15 13:40:02
阅读次数:
43
时间久了,有些遗忘,回顾记录一下: 快速排序: 顾名思义,对于c++,快速排序历史上一直是实践中已知最快的泛型排序算法,平均运行时间:O(n*logn),最差就是O(n^2)。 STL中的sort用的就是快排,只不过根据数据量级穿插了别的如插入排序,堆排等算法,进行动态调整,使性能达到最优解。一般来 ...
分类:
其他好文 时间:
2020-06-12 14:55:40
阅读次数:
58
贪心算法 基本思路: 贪心算法的基本思路是从问题的某一个初始解出发一步一步地进行,根据某个优化测度,每一步都要确保能获得局部最优解。每一步只考虑一个数据,他的选取应该满足局部优化的条件。若 下一个数据和部分最优解连在一起不再是可行解时,就不把该数据添加到部分解中,直到把所有数据枚举完,或者不能再添加 ...
分类:
编程语言 时间:
2020-06-11 21:57:17
阅读次数:
98
当目标函数含有非线性函数或者含有非线性约束的时候该规划问题变为非线性规划问题,非线性规划问题的最优解不一定在定义域的边界,可能在定义域内部,这点与线性规划不同; 例如: 编写目标函数,定义放在一个m文件中;编写非线性约束条件函数矩阵,放在另一个m文件中; function f = optf(x); ...
分类:
其他好文 时间:
2020-06-08 23:35:28
阅读次数:
78
开发一个大型Electron的应用,或许需要在客户端存储大量的数据,比如聊天应用或邮件客户端 可选的客户端数据库方案看似很多,但一一对比下来,最优解只有一个 接下来我们就一起来经历一下这个技术选型的过程: 排除:把数据以Json的形式存储在文件中 以这种方式存储一些用户的配置信息是完全没问题的(用户 ...
分类:
数据库 时间:
2020-06-07 19:50:28
阅读次数:
99
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。 也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择。 选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状 ...
分类:
编程语言 时间:
2020-06-07 16:44:54
阅读次数:
67
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。 贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态 ...
分类:
编程语言 时间:
2020-06-07 14:54:15
阅读次数:
118