自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hashmap中tableSizeFor()解释n >>>1操作

import java.util.HashMap;public class HashMapDemo { //实现了把一个数变为最接近的2的n次方 public static void main(String[] args) { int cap=5; int result=tableSizeFor(cap);//8 System.o...

2019-09-24 20:11:19 3509 5

转载 Java>>与>>>的区别

>>:带符号右移。正数右移高位补0,负数右移高位补1。比如:4 >> 1,结果是2;-4 >> 1,结果是-2。-2 >> 1,结果是-1。>>>:无符号右移。无论是正数还是负数,高位通通补0。对于正数而言,>>和>>>没区别。对于负数而言,-2 >>> 1,结果是214748...

2019-09-24 19:50:48 172

转载 剑指offer-构建乘积数组

题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。思路如果没有不能使用除法的限制,可以用公式B[i]=A[0]A[1]…A[n-1]/A[i]表示,使用除法时要特别注意A[i]等于0的情况。现在要求不能使用除法,只能用其他方法。一个直观的解法是用连乘n-1...

2019-09-22 21:04:41 137

原创 剑指offer-数组中重复的数字

题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。思路不需要额外的数组或者hash table来保存,题目里写了数组里数字的范围保证在0 ~ n-1 之间,所以可以利用现...

2019-09-22 10:56:05 160

原创 剑指offer-扑克牌顺子

题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张...

2019-09-17 22:45:01 94

原创 LeetCode 213: House Robber II

问题描述You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed. All houses at this place are arranged in a circle. That means the first hous...

2019-09-15 22:22:06 99

原创 LeetCode 198: House Robber

问题描述You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent ...

2019-09-15 20:11:52 115

原创 LeetCode 139: Word Break

问题描述Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine if s can be segmented into a space-separated sequence of one or more dictionary words.Note:T...

2019-09-15 19:24:25 122

原创 剑指offer-左旋转字符串

题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!思路输入abcXYZdef和3, 以3个分开,分为abc和XYZdef,分别反转为bca与fed...

2019-09-12 09:04:48 96

原创 剑指offer-翻转单词顺序列

题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?思路student. ...

2019-09-11 21:16:35 118

原创 并发编程demo记录demo20 ReentrantLock(可重入锁)系列

ReentrantLock1reentrantlock用于替代synchronized本例中由于m1锁定this,只有m1执行完毕的时候,m2才能执行这里是复习synchronized最原始的语义import java.util.concurrent.TimeUnit;public class ReentrantLock1 { synchronized void m1() { //锁...

2019-09-11 09:12:01 421

原创 并发编程demo记录demo21 MyContainer(固定容量同步容器)系列

面试题:写一个固定容量同步容器(满了之后,put方法要等着,空了之后,get方法要等着),拥有put和get方法,以及getCount方法,能够支持2个生产者线程以及10个消费者线程的阻塞调用way1使用wait和notify/notifyAll来实现import java.util.LinkedList;import java.util.concurrent.TimeUnit;pu...

2019-09-11 09:11:50 177

原创 并发编程demo记录demo22 ThreadLocal(线程局部变量)系列

ThreadLocal1ThreadLocal线程局部变量import java.util.concurrent.TimeUnit;public class ThreadLocal1 { volatile static Person p = new Person(); //加不加volatile打印出来都是lisi public static void main(String[]...

2019-09-11 09:11:35 172

原创 并发编程demo记录demo24 TicketSeller系列(主要介绍同步容器类)

马士兵高并发编程系列记录https://www.bilibili.com/video/av11076511/?spm_id_from=333.788.videocard.4问题描述有N张火车票,每张票都有一个编号同时有10个窗口对外售票请写一个模拟程序TicketSeller1分析下面的程序可能会产生哪些问题?重复销售超量销售import java.util.ArrayList...

2019-09-10 22:39:44 352

原创 并发编程demo记录demo23 Singleton(内部类实现单例模式)

马士兵高并发编程系列记录https://www.bilibili.com/video/av11076511/?spm_id_from=333.788.videocard.4线程安全的单例模式:阅读文章:http://www.cnblogs.com/xudong-bupt/p/3433643.html更好的是采用下面的方式,既不用加锁,也能实现懒加载使用内部类的单例模式不用加锁,也可以实...

2019-09-10 22:26:00 135

原创 并发编程demo记录demo19 MyContainer(监控)系列

马士兵高并发编程系列记录https://www.bilibili.com/video/av11076511/?spm_id_from=333.788.videocard.4MyContainer1(not ok)实现一个容器,提供两个方法,add,size写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数到5个时,线程2给出提示并结束分析下面这个程序,能完成这个功...

2019-09-10 21:16:22 231

原创 剑指offer-和为S的连续正数序列

题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数序列。序...

2019-09-09 20:20:12 101

原创 剑指offer-和为S的两个数字

题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。思路两个变量small与large分别记录两个结果数字中的最大值与最小值,一个布尔型变量find(初始化为false)记录是否可以找到。两个指针ahead,behind分别指向数组的前后两端。当ahe...

2019-09-09 19:39:31 167

转载 剑指offer-数组中的逆序对

题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于%100的数据,size&l...

2019-09-09 19:00:09 123

原创 剑指offer-两个链表的第一个公共结点

题目描述输入两个链表,找出它们的第一个公共结点。思路java实现/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ...

2019-09-06 19:38:49 114

原创 剑指offer-数字在排序数组中出现的次数

题目描述统计一个数字在排序数组中出现的次数。思路(剑指offer书上)o(n)的很容易想到public class Solution { public int GetNumberOfK(int [] array , int k) { int num=0; for(int i=0 ;i< array.length; i++){ ...

2019-09-06 18:03:08 129

原创 剑指offer-平衡二叉树

题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。way1思路(剑指offer)平衡二叉树左右子树深度差值不超过1,利用https://blog.csdn.net/weixin_44135282/article/details/100579216求左右子树的深度,判断差值,不超过1则为平衡二叉树。java实现public class Solution { public b...

2019-09-06 16:59:57 98

原创 剑指offer-二叉树的深度

题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。思路根节点为空则返回0,根节点不为空则深度为左右子树深度的最大值+1java实现/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right =...

2019-09-06 14:54:11 113

原创 并发编程demo记录demo1-18

马士兵高并发编程系列记录https://www.bilibili.com/video/av11076511/?spm_id_from=333.788.videocard.4demo1public class T1 { private int count = 10; private Object o = new Object(); // o可以理解为监视器,谁要指向下面那个代码,先到o那里...

2019-09-04 21:49:45 201

原创 剑指offer-数组中只出现一次的数字

题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路(剑指offer)利用异或的性质:任何一个数字异或自己都等于0。如果可以将将原数组分为两个子数组,每个子数组中包含一个只出现一次的数字,分别对这两个子数组中所有值异或即可得到个出现一次的数字。可以将将原数组分为两个子数组,每个子数组中包含一个只出现一次的数字的方法:从头到尾异或,出现...

2019-09-02 21:21:06 85

转载 Java中遍历Map对象的4种方法

1. 在for-each循环中使用entries来遍历Map<Integer, Integer> map = new HashMap<Integer, Integer>();for (Map.Entry<Integer, Integer> entry : map.entrySet()) { System.out.println("Key = " + ...

2019-09-02 20:06:36 529

原创 剑指offer-第一个只出现一次的字符

题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).思路遍历数组,将字符与出现次数存入HashMap,(不存在,则放入hashmap,次数为1;存在,则增加次数,写回hashmap)再次遍历数组,获取该位置字符的次数,如果次数为1返回,全部遍历完不存在则返回-1java...

2019-09-02 19:59:35 96

空空如也

空空如也

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

TA关注的人

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