自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 单例模式

一、饿汉模式(在类加载时单例初始化完成,保证getInstance的时候,单例是已经存在)public class Singleton{ private static final Singleton SINGLETON=new Singleton(); private Singleton(){}; public static Singleton getInstanc...

2018-08-25 22:13:45 147 1

转载 LeetCode 146. LRU缓存机制(java实现)

参考解答总结:这道题主要要知道选取何种数据结构并且在 O(1) 时间复杂度内完成这两种操作?O(1) 的get方法肯定要用到HashMap()LinkedList(双向链表)可以以O(1)时间复杂度,很方便地实现数据的插入和删除所以,将两个数据结构联合使用,HashMap中的(key,value)存储的是(key,Node);Node中储存的数据是双向链表节点信息,包括key,...

2018-08-22 22:58:19 2346

转载 DNS的资源记录

      标准的 DNS 数据库结构包括用来处理 DNS 查询的信息。(如地址类型资源记录包含相应主机的 IP 地址)在 RFC1035 中定义了大多数基本的资源记录类型,但是在其他的 RFC 中已经定义了附加的 RR 类型,并且可以同 DNS 一起使用。  资源记录(Resource Records),简称RRs。它是指每个域所包含的与之相关的资源。例如,每个RR都包括这个域的所属...

2018-08-19 16:37:17 776

原创 Linux操作权限

Linux下,查看某路径下用(ls -l)查看所有文件的详细属性列表时,会看到文件的操作权限,类似“drwxr-xr-x”的字符串。这串字符可以分成4段理解,结构为“d + 文件所有者操作权限 + 文件所有者所在组操作权限 + 其余人的操作权限”:1,第一段:例子中字母“d”,表示文件所在目录2,第二段:例子中字符串“rwx”,表示文件所有者对此文件的操作权限3,第三段,例子中字符...

2018-08-19 16:33:06 381

原创 剑指offer-每日6题之第七天(java版)

原题链接: 第一题:数字在排序数组中出现的次数  第二题:二叉树的深度 第三题:平衡二叉树 第四题:数组中只出现一次的数字 第五题:和为S的连续正数序列  第六题:和为S的两个数字第一题:数字在排序数组中出现的次数题目描述 统计一个数字在排序数组中出现的次数。 解析 已知数组有序,所以用二分法,找到第一个k和最后一个k的位置,最后利用下标计算...

2018-08-19 16:06:38 223

原创 剑指offer-每日6题之第六天(java版)

原题链接: 第一题:整数中1出现的次数(从1到n整数中1出现的次数)  第二题:把数组排成最小的数 第三题:丑数  第四题:第一个只出现一次的字符 第五题:数组中的逆序对  第六题:两个链表的第一个公共结点第一题:整数中1出现的次数(从1到n整数中1出现的次数)题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一...

2018-08-18 23:21:16 280

原创 分支定界法与回溯法

一、求解目标     分支定界法:找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。     回溯法:是找出T中满足约束条件的所有解二、遍历方式       分支定界法:先遍历根结点的所有子节点,在子节点中选取最符合要求的结点,再以该子节点为根结点继续搜索(树中只有某些结点及其子节点会被遍历);搜索方式为:广度优先搜索...

2018-08-18 16:13:24 693

原创 Java框架简介

 Java中的框架​     Struts      HiberNate      Spring       SpringMvc     SpringBoot     Struts2​ Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互     Hi...

2018-08-15 19:13:49 626

原创 随机快速排序

public void quickSort(int[] arr) { if (arr == null || arr.length < 2) { return; } quickSort(arr, 0, arr.length - 1); } public void quickSort(int[] arr, int l, int r) { if (l ...

2018-08-15 09:31:25 148

原创 LeetCode 75. 颜色分类(java 实现)

给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。...

2018-08-15 09:29:56 1064

原创 LeetCode 215. 数组中的第K个最大元素(java 实现)

在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明: 你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。排序 :时间复杂度...

2018-08-14 20:24:26 4236 4

原创 LeetCode 20. 有效的括号(java 实现)

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示...

2018-08-14 17:24:38 1088

原创 LeetCode 680. 验证回文字符串 Ⅱ(java实现)

给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。注意:字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。class Solution { public boolean validPalindrome(S...

2018-08-14 15:49:46 515

原创 LeetCode 524. 通过删除字母匹配到字典里最长单词(java 实现)

给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典顺序最小的字符串。如果答案不存在,则返回空字符串。示例 1:输入:s = "abpcplea", d = ["ale","apple","monkey","plea"]输出: "apple"示例 2:输入:s = &qu

2018-08-14 15:07:50 510

原创 LeetCode 141. 环形链表(java 实现)

给定一个链表,判断链表中是否有环。进阶:你能否不使用额外空间解决此题?/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * nex...

2018-08-14 14:24:50 1524

原创 LeetCode 88. 合并两个有序数组(java 实现)

给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 ...

2018-08-14 13:48:39 3598

原创 LeetCode 13. 罗马数字转整数(java 实现)

罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。...

2018-08-14 11:18:21 1368

转载 LeetCode 345. 反转字符串中的元音字母(java 实现)

编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入: "hello"输出: "holle"示例 2:输入: "leetcode"输出: "leotcede"说明:元音字母不包含字母"y"。//双指针class Solution { private final static Set<Character> set=n

2018-08-14 10:53:57 590

原创 LeetCode 506. 相对名次(java实现)

给出 N 名运动员的成绩,找出他们的相对名次并授予前三名对应的奖牌。前三名运动员将会被分别授予 “金牌”,“银牌” 和“ 铜牌”("Gold Medal", "Silver Medal", "Bronze Medal")。(注:分数越高的选手,排名越靠前。)示例 1:输入: [5, 4, 3, 2, 1]输出: ["Gold Medal", "Silver Medal", "Bro.

2018-08-14 09:43:43 491

转载 LeetCode 9. 回文数(java实现)

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。...

2018-08-14 00:03:02 608

转载 Java集合对象排序

1.List排序这个和数组的排序又不一样了。其实Java针对数组和List的排序都有实现,对数组而言,你可以直接使用Arrays.sort,对于List和Vector而言,你可以使用Collections.sort方法。Java API针对集合类型的排序提供了2个方法:java.util.Collections.sort(java.util.List)java.util.Col...

2018-08-13 21:37:18 1612

原创 LeetCode 575. 分糖果(java实现)

给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。示例 1:输入: candies = [1,1,2,2,3,3]输出: 3解析: 一共有三种种类的糖果,每一种都有两个。 最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获得糖果的种类数...

2018-08-13 21:18:57 756

原创 LeetCode 541. 反转字符串(java实现)

给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。示例:输入: s = "abcdefg", k = 2输出: "bacdfeg"要求:该字符串只包含小写的英文字母。 给定字符串的长度和 k ...

2018-08-13 21:10:36 686

原创 LeetCode 661. 图片平滑器(java实现)

包含整数的二维矩阵 M 表示一个图片的灰度。你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽可能多的利用它们。示例 1:输入:[[1,1,1], [1,0,1], [1,1,1]]输出:[[0, 0, 0], [0, 0, 0], [0, 0, 0]]解释:对于点 (0...

2018-08-13 19:42:10 258

原创 kmp算法

昨天看到网易的笔试题有一道kmp算法,就复习了一遍kmp算法主要针对的是模式串匹配问题,主要分为两个步骤一、求解next数组     所谓的next数组,指的是当主串(在下标i)和模式串(在下标j)上的元素不匹配时,模式串下标j要回退的位置,记为k每一个j,都对应一个回退的位置k,所以在求模式串的匹配问题时,我们首先要根据模式串初始化一个next数组    具体求解可参考htt...

2018-08-12 12:09:13 110

原创 LeetCode 599. 两个列表的最小索引总和(Java实现)

假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设总是存在一个答案。示例 1:输入:["Shogun", "Tapioca Express", "Burger King", "KFC"]["Piatti"...

2018-08-08 23:52:17 435 2

原创 LeetCode 605. 种花问题(Java实现)

假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。示例 1:输入: flowerbed = [1,0,0,0,1], n = 1输出...

2018-08-08 23:00:19 906

转载 LeetCode 628. 三个数的最大乘积(Java实现)

给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24注意:给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。 输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。解析...

2018-08-07 23:31:15 778

转载 LeetCode 633. 平方数之和(Java实现)

给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。示例1:输入: 5输出: True解释: 1 * 1 + 2 * 2 = 5 示例2:输入: 3输出: Falseclass Solution { public boolean judgeSquareSum(int c) { int half_c ...

2018-08-07 14:01:53 746

原创 LeetCode 643. 子数组最大平均数(Java实现)

给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。示例 1:输入: [1,12,-5,-6,50,3], k = 4输出: 12.75解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75 注意:1 <= k <= n <= 30,000。 所给数据范围 [-10,000,10,000]。//滑动...

2018-08-06 21:00:26 686

原创 LeetCode 645. 错误的集合(Java代码)

集合 S 包含从1到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复。给定一个数组 nums 代表了集合 S 发生错误后的结果。你的任务是首先寻找到重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例 1:输入: nums = [1,2,2,4]输出: [2,3]注意:给定数...

2018-08-06 20:25:03 540

原创 653. 两数之和 IV - 输入 BST(Java实现)

给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。案例 1:输入: 5 / \ 3 6 / \ \2 4 7Target = 9输出: True 案例 2:输入: 5 / \ 3 6 / \ \2 4 7Target = 2...

2018-08-06 20:01:06 211

原创 LeetCode 458. 可怜的小猪(Java实现)

有1000只水桶,其中有且只有一桶装的含有毒药,其余装的都是水。它们从外观看起来都一样。如果小猪喝了毒药,它会在15分钟内死去。问题来了,如果需要你在一小时内,弄清楚哪只水桶含有毒药,你最少需要多少只猪?回答这个问题,并为下列的进阶问题编写一个通用算法。进阶: 假设有 n 只水桶,猪饮水中毒后会在 m 分钟内死亡,你需要多少猪(x)就能在 p 分钟内找出“有毒”水桶?n只水桶里有且...

2018-08-06 14:21:36 716

原创 LeetCode 836. 矩形重叠(Java实现)

矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。示例 1:输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]输出:true示例 2:输...

2018-08-06 12:03:07 731

转载 LeetCode 840. 矩阵中的幻方(Java代码)

3 x 3 的幻方是一个填充有从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。给定一个由整数组成的 N × N 矩阵,其中有多少个 3 × 3 的 “幻方” 子矩阵?(每个子矩阵都是连续的)。 示例 1:输入: [[4,3,8,4], [9,5,1,9], [2,7,6,2]]输出: 1解释: 下面的子...

2018-08-06 11:33:10 722

原创 LeetCode 844. 比较含退格的字符串(Java实现)

给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。 示例 1:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = "ab##", T = "c#d#"输出:true解释:S 和 T 都会变成 “”。示例 3:输入:S...

2018-08-05 09:56:59 503

原创 LeetCode 876. 链表的中间结点(Java版)

给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。 示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans...

2018-08-04 17:48:01 745

转载 LeetCode 475. 供暖器(Java代码)

冬季已经来临。 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。现在,给出位于一条水平线上的房屋和供暖器的位置,找到可以覆盖所有房屋的最小加热半径。所以,你的输入将会是房屋和供暖器的位置。你将输出供暖器的最小加热半径。说明:给出的房屋和供暖器的数目是非负数且不会超过 25000。 给出的房屋和供暖器的位置均是非负数且不会超过10^9。 只要房屋位于供暖器的半径内(包括在...

2018-08-03 20:26:01 1121

原创 LeetCode 852. 山脉数组的峰顶索引(Java实现)

我们把符合下列属性的数组 A 称作山脉:A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1]给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] < ... A...

2018-08-02 21:49:42 475

原创 LeetCode 617. 合并二叉树(Java实现)

给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入: Tree 1 Tree 2 ...

2018-08-02 20:53:40 1148

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除