随笔分类 - java
摘要:题目:给定N个人物和M组朋友关系,计算出他们之间形成多少个朋友圈 举个例子,比如现在有5个宠物,分别是小猫1,小猫2,小猫3,小狗1,小狗2。再告诉你小猫1和小狗1是好朋友,小猫2和小狗1是好朋友,小猫3和小狗2是好朋友。这样它们之间就形成了2个朋友圈。如下图: 分析:典型的图结构的数据结构,也可用
阅读全文
摘要:给定一个整数,从整数当中去掉k个数字,要求剩下数字形成的新整数尽可能小。 什么意思呢?让我们举几个栗子: 给定整数1593212,删去3个数字,新整数的最小情况是1212 给定整数30200,删去1个数字,新整数的最小情况是200 给定整数10,删去2个数字,新整数的最小情况是0 需要注意的是,给定
阅读全文
摘要:题解1 - 双重for循环(TLE) 题 Two Strings Are Anagrams 的升级版,容易想到的方法为使用双重for循环两两判断字符串数组是否互为变位字符串。但显然此法的时间复杂度较高。还需要 O(n) 的数组来记录字符串是否被加入到最终结果中。 C++ 源码分析 复杂度分析 私有方
阅读全文
摘要:LRU 目的:创建了一个哈希表作为缓存,每次查找一个用户的时候先在哈希表中查询,以此提高访问性能 LRU 全称 Least Recently Used,也就 是最近最少使用的意思,是一种内存菅理算法,最早应用于Linux操作系统 LRU算法基于一种假设:长期不被使用的数据,在未来被用到的几率也不大。
阅读全文
摘要:无界背包中的状态及状态方程已经不适用于01背包问题,那么我们来比较这两个问题的不同之处,无界背包问题中同一物品可以使用多次,而01背包问题中一个背包仅可使用一次,区别就在这里。我们将 K(ω)改为 K(i,ω) 即可,新的状态表示前 i 件物品放入一个容量为 ω的背包可以获得的最大价值。 现在从以上
阅读全文
摘要:最大公约数(GCD, Greatest Common Divisor) 常用的方法为辗转相除法,也称为欧几里得算法。不妨设函数gcd(a, b)是自然是a, b的最大公约数,不妨设a > b, 则有 a=b×p+qa =b×p+q, 那么对于gcd(b, q)则是b和q的最大公约数,也就是说gcd(
阅读全文
摘要:在计算机科学中,分治法是一种很重要的算法。分治法即『分而治之』,把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个思想是很多高效算法的基础,如排序算法(快速排序,归并排序)等。 分治法思想 分治法所能
阅读全文
摘要:二分搜索是一种在有序数组中寻找目标值的经典方法,也就是说使用前提是『有序数组』。非常简单的题中『有序』特征非常明显,但更多时候可能需要我们自己去构造『有序数组』。下面我们从最基本的二分搜索开始逐步深入。 一、lower/upper bound 定义 lower bound 为在给定升序数组中大于等于
阅读全文
摘要:前言 从刚接触前端开发起,跨域这个词就一直以很高的频率在身边重复出现,一直到现在,已经调试过N个跨域相关的问题了,16年时也整理过一篇相关文章,但是感觉还是差了点什么,于是现在重新梳理了一下。 个人见识有限,如有差错,请多多见谅,欢迎提出issue,另外看到这个标题,请勿喷~ 题纲 关于跨域,有N种
阅读全文

浙公网安备 33010602011771号