- 博客(18)
- 收藏
- 关注
翻译 Read / Write Locks in Java
原文: http://tutorials.jenkov.com/java-concurrency/read-write-locks.html读写锁,解决多读少写的同步问题。实现Read Write Lock ReentranceRead ReentranceWrite ReentranceRead to Write ReentranceWrite to Read Reentrance
2018-05-08 17:30:47
185
翻译 Locks in Java
原文:http://tutorials.jenkov.com/java-concurrency/locks.htmlA Simple Lock 简单例子Lock Reentrance 可重入锁Lock Fairness 锁的公平性Calling unlock From a finally-clause A lock is a thread synchronization mechanis
2018-05-08 15:03:27
205
翻译 Java — Thread Signaling
原文:http://tutorials.jenkov.com/java-concurrency/thread-signaling.htmlSignaling via Shared ObjectsBusy Waitwait(),notify() and notifyAll()Missed SignalsSpurious WakeupsMultiple Threads Waiting...
2018-05-08 13:47:42
246
原创 从n本书中分别选取一页,输出全部组合
问题描述:现有n本书,分别从每本书中取一页,求全部的组合。解决方法:设当前书为第p本,前p-1本书的所取页数为tmp,依次遍历第p本这本书的所有页数 更新tmp,p增一,递归调用函数即可。import java.util.*;public class Solution { /** * @param a[] 每本书的页数 * @param n 表示那本书 * @param
2016-08-25 11:27:34
352
原创 最大乘积或和子序列
最大乘积子序列:public int maxProduct(int[] nums) { if(nums==null||nums.length==0){ return 0; } int n=nums.length; int max[]=new int[n]; int min[]=new int
2016-04-20 11:47:58
332
原创 输出n对符合的括号组合
分析,左扩号的数目永远大于或者等于右扩号的数目。public static void solution(int n,int l,int r,ArrayList ans,String tmp){ if(l<0||r<l){ return; } if(l==0&&r==0){ ans.add(tmp); }else{ if(l>0){ soluti
2016-04-20 11:12:52
413
原创 树的子结构
输入两颗二叉树A,B,判断B是不是A的子结构。class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}/* * 输入两颗二叉树A,B,判断B是不是A的子结构。 */publi
2016-04-11 20:16:43
391
原创 二叉树根据前序中序重建
题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。java代码:class TreeNode { int val = 0; TreeNode left = null; T...
2016-04-11 15:36:49
390
原创 判断一个数组是否是某个二叉树搜索树的后序遍历
题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路:二叉搜索树是一个颗完全二叉树,并且根节点大于或者等于左节点,小于或者等于右节点。二叉树的后序遍历是先左节点在右节点最后遍历根节点。因此,数组的最后一个元素一定是根节点,并且数组前面(除了根节点)的部分一定是左边
2016-04-11 14:19:53
1791
原创 求数据流中的中位数
如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。思路:可以建立一个大堆maxHeap用来保存较小n/2的数,一个小堆minHeap用来保存Math.ceil(n/2)个数。1.开始时,maxHeap和minHeap都为空,即大小都为0,则将第一个数保
2016-04-11 13:37:13
2520
原创 二叉树序列化与反序列化 (非递归)
本文中的二叉树序列化与反序列化均采用层次遍历非递归的方式完成。空节点用‘#’隔开,节点与节点之间用空格隔开。节点类:class TreeNode { int val = 0; TreeNode1 left = null; TreeNode1 right = null; public TreeNode1(int val) { th
2016-04-11 01:00:47
920
原创 java bitmap 实现
bitmap 用于大量数据过滤,大量数据查找、排序。1.比如说在40亿个不重复的整型数据中,判断一个数字是否在这个数据集中;2.在大量数据集(有重复的数据)中,将重复数据过滤掉;3.对大量数据(没有重复数据)进行排序。package learn;public class Bitmap { int size; //表示数据范围大小 只考虑非负数的情况 in
2016-04-10 14:14:15
918
翻译 Sublime Text3 安装package control
官网链接:https://packagecontrol.io/installation#ST3The simplest method of installation is through the Sublime Text console. The console is accessed via the ctrl+` shortcut or the View > Show Consoleme
2016-01-06 13:11:20
319
原创 jstl 标签使用
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JA
2014-11-08 20:06:08
339
原创 java 多线程之成员变量为数组实验
当成员变量为数组时:package com.smartsearch.monitor;/** * @author lh * */public class test { public static void receive(int arr[]){ System.out.print("receive:"); for(int i=0;i<arr.length;i++){ Sy
2014-10-31 22:08:52
1104
转载 java线程安全问题之静态变量、实例变量、局部变量
java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同《java并发编程实践》中所说:
2014-10-31 21:30:00
369
原创 java 多线程通信--成员变量与局部变量的区别
如果一个变量是成员变量,那么多个线程对同一个对象的成员变量进行操作时,它们对该成员变量是彼此影响的,也就是说一个线程对成员变量的改变会影响到另一个线程。 如果一个变量是局部变量,那么每个线程都会有一个该局部变量的拷贝(即便是同一个对象中的方法的局部变量,也会对每一个线程有一个拷贝),一个线程对该局部变量的改变不会影响到其他线程。
2014-10-31 21:22:45
446
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人