随笔分类 - Java
摘要:题目:在九宫格中,任意两个数字可以直接连接,但是某些倾角为45°和90°的连接有特殊限制,例如,1要和3相连的前提是,2也会被连入。1要和9相连,5也会被连入。现在问题就是要求手势解锁共有多少种设置方案。 解决思路:由于数字一共有九个,因此我们可以使用哈希将那些有特殊限制的点相连的情况存储下来,例如
阅读全文
摘要:快速排序的思想很简单,就是每次确定一个mid位置,让该位置的数在整个数组中保持有序之后,再对其两边的子数组分别进行快速排序。 因此如何将一个选定的数变为全局有序变成了快速排序的关键问题。 提供一种思路:这种思路采用的是覆盖替换的方式,具体的,我们把pivot位置的元素存起来,准备放到一个位置。我们使
阅读全文
摘要:思路:链表反转,我这里采用的是JDK 1.7中HashMap拉链法所采用的头插法。 /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ import j
阅读全文
摘要:问题:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 class Solution { int lowBit(int x) { return x & (-x); } int sum(int[] c, int x) { in
阅读全文
摘要:暴力求解法 简单枚举 给定一个整数n,按从小到大的顺序输出所有形如abcde / fghij = n的表达式,其中a ~ j 恰好为数字0 ~ 9 的一个全排列,可以有前导零。 问题分析:我们没有必要去枚举所有0~9的全排列,而只需要枚举fghij,然后计算出abcde对应的数字,判断是否是0 ~
阅读全文
摘要:IP黑名单设置与查询 按照最普通的思路,我们设置一个boolean类型的数组,将IP地址映射到本地内存中,也就是为每一个IP地址分配一个boolean数组的一个下标,用来表示该IP在不在黑名单中。由于IPv4中共有2^ 32个IP地址,因此共需要4GB内存用来存放boolean类型的数组。我们可以想
阅读全文
摘要:LRU LRU的定义 LRU是一种页面置换算法,即当内存中没有空闲页面但又需要内存时,操作系统会选择内存中的一个页面进行淘汰。淘汰页面的规则称为页面置换算法,同样,这种淘汰页面的规则也适用于缓存淘汰。LRU全称是最近最久未使用算法,LRU算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来
阅读全文

浙公网安备 33010602011771号