自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小胖的博客

技术与生活

  • 博客(140)
  • 资源 (1)
  • 收藏
  • 关注

原创 leetcode435

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

2019-06-17 19:42:04 268

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

private ListNode reverse(ListNode head){ if (head == null || head.next == null) return head; ListNode temp = head.next;//保存下一个节点 ListNode newHead = reverse(h...

2019-05-15 23:45:33 6887

原创 leetcode136

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

2019-05-15 17:18:26 161

原创 leetcode215

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

2019-04-27 09:45:02 424

原创 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输出: 4class Solution { int [] arr=null; public int fi...

2019-04-27 09:17:10 137

原创 leetcode141

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

2019-04-23 23:02:11 257

原创 leetcode680

给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: “aba”输出: True示例 2:输入: “abca”输出: True解释: 你可以删除c字符。class Solution { public boolean validPalindrome(String s) { int i=-1,j=s.length(); w...

2019-04-23 22:13:04 495

原创 leetcode167

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

2019-04-23 20:02:27 99

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

package DAHUASHU.LeetCode;import java.util.HashMap;import java.util.Map;public class LRUCache { int capacity;//LRUcache容量 Node head; // head指向最老的 Node tail; // tail指向的是最近使用的 Map...

2019-04-03 16:09:49 172

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

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

2019-03-30 10:54:35 89

原创 Leetcode2两数相加

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

2019-03-27 22:07:34 105

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

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

2019-03-27 00:13:13 273

原创 Leetcode31 下一个排列

package com.huoli.spider;public class solution { public void nextPermutation(int[] nums) { int n=nums.length; if(n<=1) return; if(n==2) swap(nums,0,n-1); for(...

2019-03-25 14:18:57 97

原创 LeetCode24两两交换链表节点

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

2019-03-13 22:01:59 152

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

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

2019-03-13 21:17:43 1302 1

原创 Threadlocal

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

2019-03-11 23:05:39 98

原创 LeetCode107二叉树的层次遍历

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

2019-03-11 20:13:11 132

原创 LeetCode204计数质数

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

2019-03-11 16:04:44 113

原创 LeetCode199二叉树的右视图

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { publ...

2019-03-11 15:12:16 192

原创 约瑟夫环问题

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

2019-03-10 09:01:17 146

原创 非递归遍历二叉树 Java

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

2019-03-07 00:13:43 1647

原创 序列化二叉树

/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/import java.util.Queue;import java....

2019-03-06 22:43:34 69

原创 LeetCode102二叉树的层次遍历

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

2019-03-06 22:15:03 98

原创 Leetcode120三角形最小路径和

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

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

原创 LeetCode113路径总和2

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

2019-03-05 21:54:22 114

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

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

2019-03-01 15:30:28 287

原创 Java传递

无论是值传递还是引用传递,其实都是一种求值策略(Evaluation strategy)。在求值策略中,还有一种叫做按共享传递(call by sharing)。其实Java中的参数传递严格意义上说应该是按共享传递。按共享传递,是指在调用函数时,传递给函数的是实参的地址的拷贝(如果实参在栈中,则直接拷贝该值)。在函数内部对参数进行操作时,需要先拷贝的地址寻找到具体的值,再进行操作。如果该值在栈中...

2019-03-01 14:52:07 151

原创 ThreadLocal内存泄漏

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

2019-02-27 08:55:59 210

原创 select/poll/epoll

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

2019-02-27 00:13:03 72

原创 Leetcode32最长有效括号

给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: “(()”输出: 2解释: 最长有效括号子串为 “()”class Solution { public int longestValidParentheses(String s) { if(s==null||s.length()==0)//很自然的想到用栈 ...

2019-02-26 23:20:43 252

原创 this逃逸

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

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

原创 notify不立刻释放锁

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

2019-02-26 15:43:53 1925

原创 Leetcode79单词搜索

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

2019-02-25 22:49:25 183

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

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1-&gt;1-&gt;2输出: 1-&gt;2示例 2:输入: 1-&gt;1-&gt;2-&gt;3-&gt;3输出: 1-&gt;2-&gt;3/** * Definition for singly-linked list. * public class ListNode { * in...

2019-02-25 21:28:14 527 1

原创 LeetCode199二叉树的右视图

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

2019-02-25 20:59:19 146

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

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1-&gt;2-&gt;3-&gt;4-&gt;5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1-&gt;2-&gt;3-&gt;5./** * Definition for singly-linked list. * public class ListNode { * int...

2019-02-24 22:53:09 82

原创 LeetCode337打家劫舍三

在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1:输入: [3,2,3,n...

2019-02-24 22:03:33 371

原创 LeetCode213打家劫舍二

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

2019-02-24 13:58:43 71

原创 LeetCode198打家劫舍

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

2019-02-24 12:19:13 104

原创 LeetCode300 最长上升子序列

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

2019-02-24 11:05:55 277

面向对象程序设计试题

面向对象是一种目前最流行的编程语言,所以提供一些试题

2013-05-10

空空如也

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

TA关注的人

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