自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 资源 (1)
  • 收藏
  • 关注

原创 3. 无重复字符的最长子串

【题目链接】https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 【思想】 初始时,字符串 S 的无重复字符的最长子串在 ij 区间[0,0],探索子串在 mn 区间也是[0,0] 尝试向 mn 中逐一添加 S 中的字符 添加成功( mn 中本不包含该字符),则扩大mn,并判断扩大后的 mn...

2020-02-12 11:52:36 131

原创 2. 两数相加

【题目链接】https://leetcode-cn.com/problems/add-two-numbers/ 【思想】 两个list上的节点依次拿下来相加,和成为结果list的节点 注意两个list可能不一样长,甚至其中一个是null 注意进位的处理,不要忘记两个list都加完之后最高位可能还有一个进位 【Java代码】 public class ListNode { int val; ...

2020-02-12 10:57:46 113

原创 1.两数之和

【题目链接】https://leetcode-cn.com/problems/two-sum 【思想】简单粗暴双层for循环 【Java代码】 public int[] twoSum01(int[] nums, int target) { for (int i = 0; i < nums.length; i++) { for (int j = ...

2020-02-11 16:09:25 108

转载 Java并发编程:volatile关键字解析

作者:海子   出处:http://www.cnblogs.com/dolphin0520/ Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。   vol

2017-07-01 09:26:02 189

转载 详解C中volatile关键字

原文链接:http://www.cnblogs.com/yc_sunniwell/archive/2010/06/24/1764231.html volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更

2017-07-01 09:14:41 130

原创 【剑指offer】二叉树的层次遍历 II

描述: 给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历) 样例: 给出一棵二叉树 {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7 按照从下往上的层次遍历为: [ [15,7], [9,20], [3] ] Java

2017-06-28 15:48:53 189

原创 【剑指offer】二叉树的前序遍历

描述: 给出一棵二叉树,返回其节点值的前序遍历。 样例 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3  返回 [1,2,3]. Java代码: /** * Definition of TreeNode: * public class TreeNode { * public int val; *

2017-06-28 15:47:07 154

原创 【剑指offer】二叉树的中序遍历

描述: 给出一棵二叉树,返回其中序遍历 样例: 给出二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,3,2]. Java代码: /** * Definition of TreeNode: * public class TreeNode { * public int val; * public

2017-06-28 15:45:30 164

原创 【剑指offer】螺旋矩阵

描述: 给定一个包含 m x n 个要素的矩阵,(m 行, n 列),按照螺旋顺序,返回该矩阵中的所有要素。 样例: 给定如下矩阵: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 应返回 [1,2,3,6,9,8,7,4,5]。 Java代码: public class Solution { /**

2017-06-28 15:40:54 315

原创 【剑指offer】将二叉查找树转换成双链表

描述: 将一个二叉查找树按照中序遍历转换成双向链表。 样例: 给定一个二叉查找树: 4 / \ 2 5 / \ 1 3 返回 12345。 Java代码: /** * Definition of TreeNode: * public class TreeNode { * public int val; * publ

2017-06-28 15:38:43 143

原创 【剑指offer】二叉树的后序遍历

描述: 给出一棵二叉树,返回其节点值的后序遍历。 样例: 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [3,2,1] java 代码: /** * Definition of TreeNode: * public class TreeNode { * public int val; *

2017-06-25 23:04:10 151

转载 在Java中如何使用transient

Java语言的transient不像class、synchronized和其他熟悉的关键字那样众所周知,因而它会出现在一些面试题中。这篇文章我将为大家讲解transient。 transient的用途 Q:transient关键字能实现什么? A:当对象被序列化时(写入字节序列到目标文件)时,transient阻止实例中那些用此关键字声明的变量持久化;当对象被反序列化时(从源文件

2017-06-22 20:41:19 224

原创 【剑指offer】字符串置换

描述: 给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换。 置换的意思是,通过改变顺序可以使得两个字符串相等。 样例: "abc" 为 "cba" 的置换。 "aabc" 不是 "abcc" 的置换。 Java代码: 字符串a,b的每一个字符都哈希到一个map里,a的字符加1,b的字符减1,统计为0 的时候删除字符,最后判

2017-06-22 10:10:18 319

原创 【剑指offer】克隆二叉树

描述: 深度复制一个二叉树。 给定一个二叉树,返回一个他的 克隆品 。 样例: 给定一个二叉树: 1 / \ 2 3 / \ 4 5 返回其相同结构相同数值的克隆二叉树: 1 / \ 2 3 / \ 4 5 Java代码: /** * Definition of TreeN

2017-06-21 11:58:34 186

原创 【剑指offer】二叉树的路径和

描述: 给定一个二叉树,找出所有路径中各节点相加总和等于给定 目标值 的路径。 一个有效的路径,指的是从根节点到叶节点的路径。 样例: 给定一个二叉树,和 目标值 = 5: 1 / \ 2 4 / \ 2 3 返回: [ [1, 2, 2], [1, 4] ] Java代码: 二叉树:先序遍历(根

2017-06-21 11:55:48 193

原创 【剑指offer】快速幂

描述: 计算an % b,其中a,b和n都是32位的整数。 样例: 例如 231 % 3 = 2 例如 1001000 % 1000 = 0 Java代码: class Solution { /* * @param a, b, n: 32bit integers * @return: An integer */

2017-06-20 11:09:28 179

原创 【剑指offer】用递归打印数字

描述: 用递归的方法找到从1到最大的N位整数。  注意事项 用下面这种方式去递归其实很容易: recursion(i) { if i > largest number: return results.add(i) recursion(i + 1) } 但是这种方式会耗费很多的递归空间,导致堆栈溢出。你能够用其他的方式来递归使得递归的深

2017-06-20 11:05:37 181

原创 【剑指offer】翻转链表

描述: 翻转一个链表 样例: 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null Java代码: /** * Definition for ListNode. * public class ListNode { * int val; * ListNode next; * ListNode(int val)

2017-06-20 11:01:09 174

原创 【剑指offer】合并两个排序链表

描述: 将两个排序链表合并为一个新的排序链表 样例: 给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。 Java代码: /** * Definition for ListNode. * public class ListNode { * int val; * Lis

2017-06-20 10:58:40 168

原创 【剑指offer】删除链表中倒数第n个节点

描述: 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。  注意事项 链表中的节点个数大于等于n 样例: 给出链表1->2->3->4->5->null和 n = 2. 删除倒数第二个节点之后,这个链表将变成1->2->3->5->null. Java代码: 前后两个指针,第一个先走n步,然后两个一起走,第一个到达链表尾部时,第二个就是要删

2017-06-20 10:50:35 231

原创 【剑指offer】子树

描述: 有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。  注意事项 若 T1 中存在从节点 n 开始的子树与 T2 相同,我们称 T2 是 T1 的子树。也就是说,如果在 T1 节点 n 处将树砍断,砍断的部分将与 T2 完全相同。 样例: 下面的例子中 T2 是 T1 的子树:

2017-06-20 10:46:07 164

原创 【剑指offer】在O(1)时间复杂度删除链表节点

描述: 给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。 样例: 给定 1->2->3->4,和节点 3,删除 3 之后,链表应该变为 1->2->4。 Java代码: 非表头或表尾时,将下个点的值复制到要删除的节点中,然后将下一个节点删掉。 /** * Definition for ListNode. * p

2017-06-19 12:42:30 326

原创 【剑指offer】奇偶分割数组

描述: 分割一个整数数组,使得奇数在前偶数在后。 样例: 给定 [1, 2, 3, 4],返回 [1, 3, 2, 4]。 Java代码: public class Solution { /** * @param nums: * an array of integers * @return: nothing */ public v

2017-06-17 10:15:26 196

原创 【剑指offer】搜索二维矩阵 II

描述: 写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。 这个矩阵具有以下特性: 每行中的整数从左到右是排序的。 每一列的整数从上到下是排序的。 在每一行或每一列中没有重复的整数。 样例: 考虑下列矩阵: [     [1, 3, 5, 7],     [2, 4, 7, 8],     [3, 5, 9, 10] ] 给出ta

2017-06-17 09:56:18 308

原创 【剑指offer】用栈实现队列

描述: 正如标题所述,你需要使用两个栈来实现队列的一些操作。 队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。 pop和top方法都应该返回第一个元素的值。 样例: 比如push(1), pop(), push(2), push(3), top(), pop(),你应该返回1,2和2

2017-06-17 09:52:27 143

转载 【剑指offer】前序遍历和中序遍历树构造二叉树

原文链接:http://www.jianshu.com/p/2a2489b1f873 描述: 根据前序遍历和中序遍历树构造二叉树.  注意事项 你可以假设树中不存在相同数值的节点 样例: 给出中序遍历:[1,2,3]和前序遍历:[2,1,3]. 返回如下的树: 2 / \ 1 3 Java代码: 首先还是对数组进行判断,如果前序遍

2017-06-17 09:50:18 206

原创 【剑指offer】寻找旋转排序数组中的最小值

描述: 假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。 你需要找到其中最小的元素。 你可以假设数组中不存在重复的元素。  注意事项 You may assume no duplicate exists in the array. 样例: 给出[4,5,6,7,0,1,2]  返回

2017-06-17 09:45:23 220

原创 【剑指offer】翻转链表

描述: 翻转一个链表 样例: 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null Java代码: 一个指针指旧list 一个指针指新list 一个临时指针 头插法 /** * Definition for ListNode. * public class ListNode { * int val; *

2017-06-17 09:41:56 143

原创 【剑指offer】二进制中有多少个1

描述: 计算在一个 32 位的整数的二进制表式中有多少个 1. 样例: 给定 32 (100000),返回 1 给定 5 (101),返回 2 给定 1023 (111111111),返回 9 Java代码: num num乘以2。右边补0 >>:右移运算符,num >> 1,相当于num除以2。正数左边补0,负数左边补1 >>>:无符号右移,忽略符号位,

2017-06-17 09:39:09 161

原创 【剑指offer】空格替换

设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。 你的程序还需要返回被替换后的字符串的长度。 样例 对于字符串"Mr John Smith", 长度为 13 替换空格之后,参数中的字符串需要变为"Mr%20John%20Smith",并且把新长度 17 作为结果返回。 先

2017-06-17 09:27:29 127

原创 【剑指offer】单例

单例 是最为最常见的设计模式之一。对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计模式为单例。例如,对于 class Mouse (不是动物的mouse哦),我们应将其设计为 singleton 模式。 你的任务是设计一个 getInstance 方法,对于给定的类,每次调用 getInstance时,都可得到同一个实例。 样例 在 Java 中: A

2017-06-17 09:22:15 117

原创 【剑指offer】斐波纳契数列

查找斐波纳契数列中第 N 个数。 所谓的斐波纳契数列是指: 前2个数是 0 和 1 。第 i 个数是第 i-1 个数和第i-2 个数的和。 斐波纳契数列的前10个数字是: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...  注意事项 The Nth fibonacci number won't exceed the max va

2017-06-17 09:18:49 154

原创 【剑指offer】Fizz Buzz 问题

给你一个整数n. 从 1 到 n 按照下面的规则打印每个数: 如果这个数被3整除,打印fizz.如果这个数被5整除,打印buzz. 如果这个数能同时被3和5整除,打印fizz buzz. 样例 比如 n = 15, 返回一个字符串数组: [ "1", "2", "fizz", "4", "buzz", "fizz", "7", "8", "fi

2017-06-17 09:13:28 217

转载 数组

数组定义 //一维数组 int[] a = { 1, 2, 3 }; int[] b = new int[10]; int[] c = new int[] { 1, 2, 3 }; //二维数组 int[][] aa = { { 1, 2, 3 }, { 4, 5, 6 } }; int[][] bb = new int[2][3]; int[][] cc

2015-08-10 22:41:42 362

原创 tigase服务器tcp保活分析

客户端(spark,psi)和服务器端(tigase)有各自的tcp保活机制。这个很好理解,客户端需要知道啥时候服务器挂了,服务器也需要知道客户端啥时候挂了。 客户端每隔一段时间(大概几十秒,每种客户端不一样)就会向服务器发tcp层保活包(带一个字节的数据)。 服务器每隔一段时间(默认几十分钟)就会向客户端发保活包。tigase保活包有两种:xmpp层ping包,tcp层保活包(带一个字节数据

2015-07-02 11:28:22 1136

原创 判断ip是否合法

/**  *  * @param inputStr  *            输入字符串  * @param outputStr  *            输出判断结果  *  * @description: 输入的inputStr是合法的IP,返回YES,否则返回NO 示例 输入:10.138.15.1 返回:YES  *  */ public class Demo

2015-06-09 10:34:32 442

原创 tigase sals SCRAM-SHA-1

tigaes中有SCRAM-SHA-1的源码,但是默认sals只支持PLAIN和ANONYMOUS,如何把SCRAM-SHA-1用起来? 参考官方开发文档: http://docs.tigase.org/tigase-server/7.0.0/Development_Guide/html/#saslcmac 服务器端: 1、把“SCRAM-SHA-1”加入服务器支持的sals列表中

2015-06-04 11:23:28 1438

转载 openfire/tigase源码环境搭建

1、openfire 3.9.3源码源码搭建 下面这个哥们写的挺好,按照文档来就可以了 http://blog.csdn.net/lovexieyuan520/article/details/37743433 2、tigase 7.0.2源码环境搭建 下面这篇文章还是挺有参考价值的,但是我还是遇到了一些小问题。 http://blog.csdn.net/nomousewch/

2015-06-04 10:49:26 796

原创 webRTC例子之stepx和webrtc.io

这两个例子都是运行在node.js上的。 1,stepx stepx是webrtc官网推荐的一个例子,这个例子最终的效果是两个带摄像头的设备通过chrome浏览器可以互发各自摄像头采集的图片。这个例子的webrtc接口调用时序和下面这个流程图展示的是一样的,在stepx源码基础上稍加修改就能实现实时视频。 这个例子的信令交互用的socket.io。 时序: 假设第一个进入房间的是

2015-04-19 21:33:56 1100

原创 mac使用小技巧

1,android模拟器横竖屏切换 fn+control+f12

2015-04-08 20:25:13 398

空空如也

空空如也

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

TA关注的人

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