![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 64
Jessio
这个作者很懒,什么都没留下…
展开
-
《深入理解java虚拟机》学习笔记——第一章
概述java的优点:摆脱平台束缚,一次编写到处运行相对安全的内存管理和访问机制,避免内存泄露和只能越界热点代码检测和运行时编译优化翻译 2019-02-17 21:17:09 · 172 阅读 · 0 评论 -
leetcode习题集——3. 无重复字符的最长子串
题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子...原创 2019-02-23 00:07:45 · 419 阅读 · 0 评论 -
leetcode习题集——4. 寻找两个有序数组的中位数
题目给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (...原创 2019-02-23 11:22:06 · 147 阅读 · 0 评论 -
leetcode习题集——5. 最长回文子串
题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”算法1思路:动态规划我们定义P(i,j)为回文子串,则我们有递推式if(S(i-1) == S(j+1))then P(i-1,j+1)也是...原创 2019-02-24 15:07:25 · 127 阅读 · 0 评论 -
《深入理解java虚拟机》学习笔记——第二章
java内存区域与内存溢出异常运行时数据区域程序计数器(线程私有)线程执行的字节码的行号指示器各个线程拥有独立的程序计数器执行java方法时,存的是字节码指令地址执行Native方法时,计数器值为空(Undefined)java虚拟机栈(线程私有)方法执行时创建栈帧(stack frame)栈帧储存局部变量表、操作数、动态链接、方法出口线程申请的栈深度大于j...翻译 2019-02-21 11:15:43 · 207 阅读 · 0 评论 -
leetcode习题集——7. 整数反转
题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。算法1pub...原创 2019-02-27 11:51:12 · 146 阅读 · 0 评论 -
leetcode习题集——9. 回文数
题目判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。...原创 2019-03-06 20:11:56 · 142 阅读 · 0 评论 -
leetcode习题集——12. 整数转罗马数字
题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1...原创 2019-03-09 23:15:36 · 137 阅读 · 0 评论 -
leetcode习题集——8. 字符串转换整数 (atoi)
题目请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可...原创 2019-03-04 21:04:30 · 119 阅读 · 0 评论 -
leetcode习题集——10. 正则表达式匹配
题目给定一个字符串 (s) 和一个字符模式 §。实现支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符。‘*’ 匹配零个或多个前面的元素。匹配应该覆盖整个字符串 (s) ,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = “aa”p = “a”...翻译 2019-03-10 20:49:57 · 316 阅读 · 0 评论 -
leetcode习题集——22. 括号生成(括号表达式)
题目给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]算法1public class P22_GenerateParentheses2 { public List<String> gener...原创 2019-03-19 20:02:41 · 260 阅读 · 0 评论 -
leetcode习题集——16. 最接近的三数之和
题目给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).算法1package P16;...原创 2019-03-15 21:01:52 · 112 阅读 · 0 评论 -
leetcode习题集——17. 电话号码的字母组合
题目给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].算法public class P17_LetterCombinationsofaPhoneNumber ...原创 2019-03-16 10:35:44 · 161 阅读 · 0 评论 -
leetcode习题集——23. 合并K个排序链表
习题合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6算法public class P23_MergeKSortedLists { public ListNode m...原创 2019-03-20 17:16:06 · 112 阅读 · 0 评论 -
leetcode习题集——24. 两两交换链表中的节点
题目给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.算法1public class P24_SwapNodesinPairs { public ListNode swapPairs(ListNode...原创 2019-03-21 09:53:38 · 185 阅读 · 0 评论 -
leetcode习题集——25. k个一组翻转链表
题目给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->...原创 2019-03-21 11:11:40 · 117 阅读 · 0 评论 -
leetcode习题集——18. 四数之和
题目给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:...原创 2019-03-17 21:58:01 · 119 阅读 · 0 评论 -
leetcode习题集——13. 罗马数字转整数
题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1...原创 2019-03-13 10:42:17 · 105 阅读 · 0 评论 -
leetcode习题集——29. 两数相除
题目给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend = 7, divisor = -3输出: -2说明:被除数和除数均为 ...原创 2019-03-24 22:03:53 · 141 阅读 · 0 评论 -
leetcode习题集——14. 最长公共前缀
题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。算法1public class P14Long...原创 2019-03-13 15:30:10 · 99 阅读 · 0 评论 -
leetcode习题集——15. 三数之和
题目给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]算法1public cla...原创 2019-03-13 16:25:25 · 114 阅读 · 0 评论 -
leetcode习题集——26. 删除排序数组中的重复项
题目给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nu...原创 2019-03-22 11:43:00 · 136 阅读 · 0 评论 -
leetcode习题集——19. 删除链表的倒数第N个节点
题目给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?算法1public class P19_RemoveNode { ...原创 2019-03-18 20:21:05 · 153 阅读 · 0 评论 -
leetcode习题集——20. 有效的括号
题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4...原创 2019-03-18 21:29:32 · 122 阅读 · 0 评论 -
leetcode习题集——27. 移除元素
题目给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两...原创 2019-03-22 15:56:03 · 93 阅读 · 0 评论 -
leetcode习题集——28. 实现strStr()
题目实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle ...原创 2019-03-22 16:26:09 · 99 阅读 · 0 评论 -
leetcode习题集——21. 合并两个有序链表
题目将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4算法public class P21_MergeTwoSortedLists { public ListNode mergeTwoLists(L...原创 2019-03-19 11:58:11 · 136 阅读 · 0 评论 -
leetcode习题集——31. 下一个排列
题目实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1算法1public class P30_Next...原创 2019-03-26 11:22:59 · 164 阅读 · 0 评论 -
leetcode习题集——34. 在排序数组中查找元素的第一个和最后一个位置
题目给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10]...原创 2019-03-30 22:11:03 · 97 阅读 · 0 评论 -
leetcode习题集——35. 搜索插入位置
题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: ...原创 2019-03-31 16:00:05 · 92 阅读 · 0 评论 -
leetcode习题集——36. 有效的数独
题目判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:[[“5”,“3”,".",".",“7”,"."...原创 2019-03-31 16:40:23 · 139 阅读 · 0 评论 -
leetcode习题集——37. 解数独
题目编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。空白格用 '.' 表示。解:Note:给定的数独序列只包含数字 1-9 和字符 '.' 。你可以假设给定的数独只有唯一解。给定数独永远是 9x9 形式的。算...原创 2019-04-06 13:22:41 · 153 阅读 · 0 评论 -
leetcode习题集——39. 组合总和
题目给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为:[...原创 2019-04-10 17:08:24 · 120 阅读 · 0 评论 -
leetcode习题集——40. 组合总和 II
题目给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:...原创 2019-04-10 17:30:00 · 132 阅读 · 0 评论 -
leetcode习题集——41. 缺失的第一个正数
题目给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1算法public class P41_FirstMissingPositive2 { public int firstMissingPositive(...原创 2019-04-11 11:21:32 · 95 阅读 · 0 评论 -
leetcode习题集——33. 搜索旋转排序数组
题目假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], ...原创 2019-03-28 16:28:53 · 175 阅读 · 0 评论 -
leetcode习题集——30. 串联所有单词的子串
题目给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。示例 1:输入:s = “barfoothefoobarman”,words = [“foo”,“bar”]输出:[0,9]解释:从索引 0 ...原创 2019-03-28 21:41:31 · 277 阅读 · 0 评论 -
leetcode习题集——42. 接雨水
题目给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6算法public class P...原创 2019-04-11 17:16:16 · 147 阅读 · 0 评论 -
leetcode习题集——11. 盛最多水的容器
题目给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为...翻译 2019-03-06 21:34:42 · 117 阅读 · 0 评论 -
leetcode习题集——32. 最长有效括号
题目给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: “(()”输出: 2解释: 最长有效括号子串为 “()”示例 2:输入: “)()())”输出: 4解释: 最长有效括号子串为 “()()”算法public class P32_LongestValidParentheses { public int lon...原创 2019-03-29 11:40:59 · 146 阅读 · 0 评论