自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 leetcode435

//无重叠区间 class Solution { //intervals为n行2列数组 public int eraseOverlapIntervals(int[][] intervals) { if(intervals.length==0) ...

2019-06-17 19:42:04 73 0

原创 反转链表的递归写法,保证看懂

private ListNode reverse(ListNode head){ if (head == null || head.next == null) return head; ListNode temp = head.nex...

2019-05-15 23:45:33 3050 0

原创 leetcode136

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 显而易见的解法一...

2019-05-15 17:18:26 31 0

原创 leetcode215

class Solution { public int findKthLargest(int[] nums, int k) { //利用快排的思路也可以解决 int k1=nums.length-k; int low=0,high=nums....

2019-04-27 09:45:02 217 0

原创 LeetCode215

在未排序的数组中找到第 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 clas...

2019-04-27 09:17:10 40 0

原创 leetcode141

给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例 1: 输入:head = [3,2,0,-4], pos = 1 输出:true 解释:链表中有一个环,其尾部...

2019-04-23 23:02:11 90 0

原创 leetcode680

给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。 示例 1: 输入: “aba” 输出: True 示例 2: 输入: “abca” 输出: True 解释: 你可以删除c字符。 class Solution { public boolean validPalindro...

2019-04-23 22:13:04 129 0

原创 leetcode167

给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可...

2019-04-23 20:02:27 27 0

原创 如何实现一个LRU带详细注释,保证看懂

package DAHUASHU.LeetCode; import java.util.HashMap; import java.util.Map; public class LRUCache { int capacity;//LRUcache容量 Node head; // ...

2019-04-03 16:09:49 75 0

原创 LeetCode19删除链表的倒数第N个节点

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } ...

2019-03-30 10:54:35 31 0

原创 Leetcode2两数相加

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } ...

2019-03-27 22:07:34 38 0

原创 阿里面试题——多线程

package BINGFA; import java.util.concurrent.atomic.AtomicInteger; //有三个线程ID分别是A、B、C,请用多线编程实现,在屏幕上循环打印10次ABCABC //请补充以下代码 public class Test { ...

2019-03-27 00:13:13 97 0

原创 Leetcode31 下一个排列

package com.huoli.spider; public class solution { public void nextPermutation(int[] nums) { int n=nums.length; if(n<=1) retur...

2019-03-25 14:18:57 29 0

原创 LeetCode24两两交换链表节点

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1-&gt;2-&gt;3-&gt;4, 你应该返回 2-&gt;1-&gt;4-&gt;3. /** * D...

2019-03-13 22:01:59 45 0

原创 统计一个字符串字符出现最多的次数

public class test { public static void main(String[] args) { System.out.println(findMaxValue("abcda")); } public static...

2019-03-13 21:17:43 207 0

原创 Threadlocal

最后来做个总结吧,可能泄露的场景仅且仅在: 线程run方法结束后没有显示的调用remove进行清理 线程在线程池的模式下,一直重复运行

2019-03-11 23:05:39 31 0

原创 LeetCode107二叉树的层次遍历

给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回其自底向上的层次遍历为: [ [15,7], [9,20], [3]...

2019-03-11 20:13:11 44 0

原创 LeetCode204计数质数

class Solution { int count=0; public int countPrimes(int n) { for(int i=2;i&lt;n;i++){ if(check(i)){ ...

2019-03-11 16:04:44 31 0

原创 LeetCode199二叉树的右视图

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int...

2019-03-11 15:12:16 64 0

原创 约瑟夫环问题

1、题目描述 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 2、思想 假设有n个人,从1到n,放入一个ArrayList中,设置开始...

2019-03-10 09:01:17 37 0

原创 非递归遍历二叉树 Java

非递归实现二叉树的前序遍历 ```public List&lt;Integer&gt; preorderTraversal(TreeNode root) { List&lt;Integer&gt; ret = new ArrayList&lt;&a...

2019-03-07 00:13:43 1140 0

原创 序列化二叉树

/* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = v...

2019-03-06 22:43:34 14 0

原创 LeetCode102二叉树的层次遍历

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] /** * Definit...

2019-03-06 22:15:03 33 0

原创 Leetcode120三角形最小路径和

给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11) class Solution { publi...

2019-03-05 23:22:13 149 1

原创 LeetCode113路径总和2

给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ ...

2019-03-05 21:54:22 41 0

原创 剑指offer 二叉树转为双向链表

/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = v...

2019-03-01 15:30:28 83 0

原创 Java传递

无论是值传递还是引用传递,其实都是一种求值策略(Evaluation strategy)。在求值策略中,还有一种叫做按共享传递(call by sharing)。其实Java中的参数传递严格意义上说应该是按共享传递。 按共享传递,是指在调用函数时,传递给函数的是实参的地址的拷贝(如果实参在栈中,则...

2019-03-01 14:52:07 51 0

原创 ThreadLocal内存泄漏

为什么使用弱引用? key 使用强引用:引用的ThreadLocal的对象被回收了,但是ThreadLocalMap还持有ThreadLocal的强引用,如果没有手动删除,ThreadLocal不会被回收,导致Entry内存泄漏。 key 使用弱引用:引用的ThreadLocal的对象被回收了,由...

2019-02-27 08:55:59 77 0

原创 select/poll/epoll

epoll重大改进: 支持一个进程打开的socket描述符不受限 IO效率不会随着FD的数目增加而线性下降 使用mmap加速内核与用户空间的消息传递 api更加简单

2019-02-27 00:13:03 26 0

原创 Leetcode32最长有效括号

给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。 示例 1: 输入: “(()” 输出: 2 解释: 最长有效括号子串为 “()” class Solution { public int longestValidParentheses(String s) ...

2019-02-26 23:20:43 104 0

原创 this逃逸

Executor 框架是Java5之后引进的,在Java 5之后,通过 Executor 来启动线程比使用 Thread 的 start 方法更好,除了更易管理,效率更好(用线程池实现,节约开销)外,还有关键的一点:有助于避免 this 逃逸问题。 this逃逸是指在构造函数返回之前其他线程就持有...

2019-02-26 17:29:00 81 1

原创 notify不立刻释放锁

当方法wait()被执行后,锁自动被释放,但执行完notify()方法后,锁不会自动释放。必须执行完notify()方法所在的synchronized代码块后才释放。

2019-02-26 15:43:53 977 0

原创 Leetcode79单词搜索

给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board = [ [‘A’,‘B’,‘C’,‘E’], [‘S’,‘F’,‘C’,‘S...

2019-02-25 22:49:25 53 0

原创 LeetCode83删除链表中重复的数字

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1-&gt;1-&gt;2 输出: 1-&gt;2 示例 2: 输入: 1-&gt;1-&gt;2-&gt;3-&gt;3 输出: 1-&gt;2-&...

2019-02-25 21:28:14 228 0

原创 LeetCode199二叉树的右视图

给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例: 输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 解释: 1 &lt;— / 2 3 &lt;— \...

2019-02-25 20:59:19 74 0

原创 LeetCode19 删除链表的倒数第 n 个节点

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1-&gt;2-&gt;3-&gt;4-&gt;5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1-&gt;2-&gt;3-&gt;5. ...

2019-02-24 22:53:09 28 0

原创 LeetCode337打家劫舍三

在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自...

2019-02-24 22:03:33 160 0

原创 LeetCode213打家劫舍二

你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警...

2019-02-24 13:58:43 25 0

原创 LeetCode198打家劫舍

输入: [1,2,3,1] 输出: 4 解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。 class Solution { public int rob(int[] nums) { if(n...

2019-02-24 12:19:13 36 0

原创 LeetCode300 最长上升子序列

给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 class Solution { public int lengthOfLIS(...

2019-02-24 11:05:55 137 0

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