自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

A Little Blog

just do IT

  • 博客(37)
  • 收藏
  • 关注

原创 HashMap和HashTable的区别

参考链接:http://stackoverflow.com/questions/40471/differences-between-hashmap-and-hashtable 总结:1. hashmap不是线程安全的 2. hashtable是线程安全的 3. 单线程使用hashmap,因为它更快,或者说时间效率更高

2016-11-30 14:21:32 146

原创 Vector和ArrayList的区别

更加有趣的是: 如果你对此感兴趣,请自己深入探讨。 参考: http://stackoverflow.com/questions/2986296/what-are-the-differences-between-arraylist-and-vector 更新: 我今天打开ArrayList的源码,(如上图所示)如果空间不够,再次分配时增加的空间大小为(oldCapacity >>

2016-11-30 12:27:35 172

原创 StringBuffer和StringBuilder的区别

StringBuffer is synchronized, and StringBuilder is not. It is the main difference between StringBuffer and StringBuilder. Here's a simple benchmark test: public class Main { public static void main

2016-11-30 11:55:10 252

原创 为什么String连接字符串很慢

一段String 连接字符串的用法public String joinWords(String[] words){ String init = ""; for(String s:words){ init+=s;//每次拼接两个字符串 } return init; } 分析:每次拼接两个字符串时,包含

2016-11-30 11:37:01 1067

原创 上楼梯

package 上楼梯;public class GoUpstairs { private static final int MOD = 1000000007; public int countWays(int n) { // write code here if (n == 1) return 1; if (n

2016-11-30 11:24:03 162

原创 原串翻转

C++的解法这里是题目链接 本题要求不能使用额外的空间,所以不能用java做,下面是C++的解法。#include <iostream>using namespace std;class Reverse { public: string reverseString(string iniString) { int len = iniString.length();

2016-11-26 21:35:34 179

原创 确定字符互异

这是题目链接暴力法注意:题目要求不能用额外的空间 时间复杂度 = min( 257 , str.length())* min(257, str.length())import java.util.*;public class Different { public boolean checkDifferent(String iniString) { if(iniStri

2016-11-26 19:29:11 155

原创 构建乘积数组

package 构建乘积数组;import java.util.ArrayList;public class Solution { public int[] multiply(int[] A) { int len = A.length; int[] left = new int[len]; System.arraycopy(A, 0, left

2016-11-26 17:39:25 130

原创 把二叉树打印成多行

package 把二叉树打印成多行;import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue;class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNo

2016-11-26 14:37:26 199

原创 和为S的两个数

package 和为S的两个数;import java.util.ArrayList;public class Solution { public ArrayList<Integer> FindNumbersWithSum(int[] array, int sum) { ArrayList<Integer> res = new ArrayList<Integer>();

2016-11-26 13:11:02 171

原创 把数组排成最小的数

package 把数组排成最小的数;import java.util.Arrays; import java.util.Comparator;public class Solution { public String PrintMinNumber(int[] array) { if (array == null) { return null;

2016-11-26 12:45:19 137

原创 数组中只出现一次的两个数字

package 数组中只出现一次的数;public class Solution { public void FindNumsAppearOnce(int[] array, int num1[], int num2[]) { int len = array.length; int aXorb = 0; for (int i = 0; i < l

2016-11-26 12:24:18 157

原创 数字在有序数组中出现的次数

二分法的应用package 统计一个数在有序数组中出现的次数;public class Solution { public int GetNumberOfK(int[] array, int k) { int len = array.length; if (0 == len) { return 0; }

2016-11-25 21:28:46 267

原创 从1到n的n个整数中1出现的次数

分析暴力解法的优劣 首先这道题是可以用比较暴力的思想解决,是这样的,枚举闭区间 [1, n]中的每一个数,然后计算这每一个数中包含的1的数目,然后将数目累和起来, 就得到了最后的结果。 分析: 1. 时间复杂度:由于 10 进制的整数 N 有 logN 位,所以考察一个整数中含有 1 的个数的代价是 O(log N),一共需要考察 N 个数。所以这种解法的时间复杂度

2016-11-25 16:36:17 176

原创 重建二叉树

package 重建二叉树;class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }public class Solution { public TreeNode reConstructBinaryTree(int[] p

2016-11-25 15:02:05 138

原创 最小的k个数

package 最小的k个数;import java.util.ArrayList; import java.util.PriorityQueue;public class Solution { PriorityQueue<Integer> pq = new PriorityQueue<Integer>(); ArrayList<Integer> res = new ArrayLis

2016-11-24 09:43:04 151

原创 单链表的逆转

package 翻转链表;// Definition for ListNode. class ListNode { int val; ListNode next; ListNode(int val) { this.val = val; this.next = null; } }public class Solution { /**

2016-11-23 23:25:59 199

原创 左旋字符串

package 左移字符串;public class Solution { public String LeftRotateString(String str,int n) { if(str == null){ return str; } int len = str.length(); if(len ==

2016-11-23 21:14:28 167

原创 二叉树中和为某一值的路径

package 二叉树中和为某一值的路径;import java.util.ArrayList;class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } }publi

2016-11-23 16:57:12 151

原创 变态跳台阶

第一种解法这道题是这样思考的,n表示有n个台阶。那么--> if(n==1) ans? if(n==2) ans? if(n==3) ans? if(n==4) ans? 相信你算前四项后,会有很大的发现。(just do it) package 变态跳台阶;public class Solution { static final int MAX = 32; static int[]

2016-11-23 13:41:03 149

原创 字符流中第一次出现的字符

一个简单的说明 网上大多数的代码都是差不多的,它们的代码单次查询的时间复杂度是O(n),下面的代码时间复杂度是O(1)的,想想为什么? 注意事项:不要被while欺骗了 package 字符流中第一个不重复的字符;import java.util.HashMap; import java.util.LinkedList; import java.util.Queue;public cl

2016-11-23 13:05:37 214

原创 数组中重复的数字

package 数组中重复的数字;public class Solution { // Parameters: // numbers: an array of integers // length: the length of array numbers // duplication: (Output) the duplicated number in the arr

2016-11-23 12:16:16 159

原创 判断一棵树是否是平衡二叉树

package 判断一棵树是否是平衡二叉树;class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } }public class Solution { publ

2016-11-23 11:47:52 243

原创 数组中出现次数超过一般的数字

package 把数组排成最小的数;public class Solution { public int MoreThanHalfNum_Solution(int[] array) { if (null == array) { return 0; } int len = array.length; if (

2016-11-22 19:44:51 214

原创 连续子数组的最大和

解题思路题意题目链接:这是题目链接 题目内容:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢? 例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,

2016-11-22 09:07:33 455

原创 不用+-*/实现加法

package 位运算实现加法;public class Solution { public int Add(int num1,int num2) { if(0 == num2){ return num1; } else { return Add(num1 ^ num2, (num1&num2)<<1);

2016-11-21 19:18:10 499

原创 判断一棵二叉树是否是对称的

package 对称的二叉树; class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }} public class Solution { boolean is

2016-11-21 16:41:19 317

原创 二叉树的下一个节点

解题思路 这道题是这样思考的,请回答下面我写的几个问题? 一 节点2的下一个节点是什么? 二 节点1的下一个节点是什么? 三 节点3的下一个节点是什么?(看上面的一副图) 四 节点4的下一个节点是什么? 最后的思考(重要的是)自己如何用递归独立实现代码。 package 二叉树的下一个节点;class TreeLinkNode { int val; TreeLinkN

2016-11-21 16:16:03 819

原创 二叉树的深度

package 求二叉树的深度;class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}public class Solution { public int

2016-11-21 13:55:32 432

原创 两个链表的第一个公共节点(引用相同)

package 找到第一个公共的节点;import java.util.HashMap; class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public class Solution { HashMap<ListNode,

2016-11-21 12:53:34 292

原创 合并两个有序的链表

package 合并两个有序的链表; class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }public class Solution { public ListNode Merge(ListNode list1,ListNod

2016-11-21 12:28:36 447

原创 删除链表中重复的节点

package 删除链表中重复节点;class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }public class Solution { public ListNode deleteDuplication(ListNode pH

2016-11-21 11:56:52 500

原创 字符串中第一个字符出现的位置

package 数据流中的中位数;import java.util.ArrayList; import java.util.HashMap; //import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue;public class Solution { public int FirstNotR

2016-11-20 22:07:47 2615

原创 数据流中的中位数

package 数据流中的中位数;import java.util.Comparator; import java.util.PriorityQueue;public class Solution { private PriorityQueue<Integer> smallHeap = new PriorityQueue<Integer>(); private PriorityQue

2016-11-20 20:57:18 481

原创 丑数

这里是题目链接,请点开查看原题这篇blog的目的和侧重首先请你点开题目链接,并且认真思考,自己 好的,首先我说明一下这篇博客的侧重点,我们将一起探讨这道题目各种解法的时间复杂度和空间复杂度。 import java.util.LinkedList; import java.util.Queue;public class Solution { public int GetUglyNumbe

2016-11-20 20:43:24 634

原创 复杂链表的复制

下面的代码通不过测试,但是可以提供思路和一些测试数据,以后慢慢想吧,如果你发现了其中的错误错误,请在下面评论,如果你有更好的解法,请在下面评论。 [评测网站--复杂链表的复制,这是题目链接](http://www.nowcoder.com/practice/f836b2c43afc4b35ad6adc41ec941dba?tpId=13&tqId=11178&rp=2&ru=/ta/coding-i

2016-11-20 11:41:36 503

原创 环形打印矩阵

import java.util.ArrayList;public class Solution { public static ArrayList<Integer> printMatrix(int[][] matrix) { ArrayList<Integer> als = new ArrayList<Integer>(); if (null == ma

2016-11-19 12:57:57 997

空空如也

空空如也

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

TA关注的人

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