自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

原题链接:第一题:把字符串转换成整数第二题:数组中重复的数字第三题:构建乘积数组第四题:正则表达式匹配第五题:表示数值的字符串第六题:字符流中第一个不重复的字符第一题:把字符串转换成整数第二题:数组中重复的数字第三题:构建乘积数组第四题:正则表达式匹配第五题:表示数值的字符串第六题:字符流中第一个不重复的字符题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符...

2018-11-15 21:39:34 261

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

原题链接: 第一题:左旋转字符串  第二题:翻转单词顺序列 第三题:扑克牌顺子 第四题:孩子们的游戏(圆圈中最后剩下的数) 第五题:求1+2+3+...+n  第六题:不用加减乘除做加法 第一题:左旋转字符串题目描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移...

2018-11-10 11:17:36 288

转载 LeetCode56.合并

解题思路对集合按起始值升序排列创建两个对象v1(初始去排序后的集合中的第一个元素),v2(v1的后一个元素)进行比较,如果发现区间有重叠,则修改v1的末尾值,否则直接把v1加入结果数组中,在从v2开始比较public List<Interval> merge(List<Interval> intervals) { List<Interval&...

2018-11-01 17:52:19 207

原创 LeetCode560 和为K的

暴力解法两层循环,外层循环遍历数组中的每一个数,以每一个数当做子数组的开始位置;内层循环遍历得到是否存在和为K的子数组 public int subarraySum(int[] nums, int k) { int sum = 0; int start=0; int count = 0; for(int i = 0;i <...

2018-11-01 17:25:29 529

原创 二叉树的遍历

前序遍历(根左右)递归public void preOrderTraverse1(TreeNode root){ if (root == null) return; System.out.print(root.val+" ");//遍历根节点 preOrderTraverse1(root.left);//先序递归遍历左子树 preOrderTr...

2018-10-18 21:22:22 130

转载 大数乘法

解析:     对输入的数的储存结构逆序储存,定义一个结果数组,存储结果,数组长度为两个数的长度相加,然后从第一位开始,用第一个数的每一位和第二个数的每一位相乘相乘的结果加到结果数组里  rs[j + i] += (num1[j] * num2[i])然后将结果数组进行进位操作最后逆序从第一个不为0的位置开始输出结果import java.util.*;public cla...

2018-09-09 21:25:24 419

转载 LeetCode 5最长回文子串(java代码)

方法一:动态规划 定义P(i,j):如果字符串从i位置到j位置是回文,P(i,j)=true;否则,P(i,j)=false; 那么P(i,j)= P(i+1,j−1) && Si==Sj 首先初始化一字母和二字母的回文: P(i,i)=true P(i, i) = true P(i,i)=true ...

2018-09-09 18:14:33 1675 2

原创 最长公共子串

 解析:     每次在其中的一个字符串中找子串,判断是否在第二个字符串中,如果在第二个字符串中,并且子串长度大于之前找到的子串,更新当前最长公共子串 public String getMaxString(String str1,String str2){ String res=""; for(int i=0;i<str1.length();i++)...

2018-09-09 17:42:11 146

转载 LeetCode 547. 朋友圈数量--无向连通图

解析方法一:DFS遍历所有人,对于每一个人,寻找他的好友,找到好友后再找这个好友的好友,这样深度优先遍历下去,设置一个visited记录是否已经遍历了这个人。 因为如果m个人最多m个朋友圈,设置后visited后,相同的朋友圈会检测到visited[i]!=0就会不算数class Solution { public int findCircleNum(int[][] M) {...

2018-09-09 17:37:45 2150

原创 单例模式

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

2018-08-25 22:13:45 139 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 2322

转载 DNS的资源记录

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

2018-08-19 16:37:17 714

原创 Linux操作权限

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

2018-08-19 16:33:06 368

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

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

2018-08-19 16:06:38 208

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

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

2018-08-18 23:21:16 220

原创 分支定界法与回溯法

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

2018-08-18 16:13:24 655

原创 Java框架简介

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

2018-08-15 19:13:49 591

原创 随机快速排序

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 140

原创 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 1049

原创 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 4195 4

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

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

2018-08-14 17:24:38 1076

原创 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 481

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

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

2018-08-14 15:07:50 500

原创 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 1496

原创 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 3560

原创 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 1344

转载 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 572

原创 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 459

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

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

2018-08-14 00:03:02 576

转载 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 1582

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

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

2018-08-13 21:18:57 742

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

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

2018-08-13 21:10:36 674

原创 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 249

原创 kmp算法

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

2018-08-12 12:09:13 98

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

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

2018-08-08 23:52:17 418 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 892

转载 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 756

转载 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 690

原创 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 665

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

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

2018-08-06 20:25:03 497

空空如也

空空如也

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

TA关注的人

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