我们知道,在JVM编译期和加载器,甚至运行期已经做了大量的调优操作,但是那些都是JVM针对Java程序所做的通用的、简单的优化,程序在运行时由于运行环境的复杂性、业务逻辑的复杂性,很多JVM是无法进行优化处理的,这就需要我们自己在写代码的时候就注意,以便我们的程序在特定的业务场景发挥到最佳性能。要进...
分类:
其他好文 时间:
2014-05-15 01:59:58
阅读次数:
275
深度学习——人工神经网络再掀研究热潮胡晓林转自:http://caai.cn/contents/118/1934.html人工神经网络起源于上世纪40年代,到今天已经70年历史了。就像人的一生,经历了起起落落,有过辉煌,有过黯淡,有过嘈杂,有过冷清。总体说来,过去的20年中人工神经网络的研究不温不火...
分类:
其他好文 时间:
2014-05-15 01:59:20
阅读次数:
903
题意:给定一组数和另一个数,在这组数中找两个数,使它们的和等于给定的数
思路1: --> 错,因为题目要求返回下标。
1.排序
2.两个下标,一个指向头,一个指向尾
3.如果下标指向的两个元素相加大于给定的数,尾下标减一
如果小于,头下标加一
思路2: hash
1.用hash存储每个数的下标
2.数组,看hash[target-num[i]]是否存在
复杂度:时间O(n), 空间O(n)...
分类:
其他好文 时间:
2014-05-15 01:28:13
阅读次数:
297
题意:交换给定链表中的相邻节点,但不可以改变链表里的值
如1->2->3->4交换后为2->1->4->3
思路:
按题意中的扫描去改变每两个相邻节点的next指针的指向即可。
小技巧:
因为处理每两个相邻节点的时候,需要一个指针记录它们前一个节点,而头节点前面没有节点,
所以可设置一个dummy节点指向头指针,这样开头的两个节点的处理方式跟其它的相邻节点的处理方式就一样了
复杂度:时间O(n),空间O(1)...
分类:
其他好文 时间:
2014-05-15 00:16:00
阅读次数:
359
第一、任意一个比较排序算法在最好情况下的时间复杂度也是O(nlogN);
第二、计数排序
假设n个输入元素的每一个都是介于0到k之间的整数,计数排序可用,需要临时存储空间O(K),时间复杂度是O(n).
#include
using namespace std;
void countingSort(int *A,int len,int max)
{
if(A==NULL || len<...
分类:
其他好文 时间:
2014-05-14 23:58:58
阅读次数:
382
由于一同学在装系统时设置的密码太过于复杂,让我给他修改一下密码。当时想修改密码不是很容易嘛,遂打开终端 su - 获取管理员权限。 passwd xiaohu
回车,啪啪两行密码一输心想好啦,重启系统输入新改的密码,系统迟疑了大约半分钟后显示密码不合法。于是又重新输入了以前的密码系统就马上开了。.....
分类:
其他好文 时间:
2014-05-14 22:49:49
阅读次数:
367
什么是钻石问题?如下图所示,B和C继承于A,D继承B和C(多重继承),在D中调用A的方法时,无法判断是调用B中的实现还是C的实现,下图继承关系是个菱形,所以该问题又叫做菱形问题。如果java要解决这个问题,需要引入更复杂的机制,这和java
的初衷是背道而驰的(simple),但是java中可以实现...
分类:
编程语言 时间:
2014-05-14 22:45:11
阅读次数:
393
插入排序是最基本基于比较的排序方法,其时间复杂度为Ο(n2),最好情况为初始有序,最坏为逆序。
伪代码如下: insertionSort(A,n) for i=1 to n do key=A[i] for j=i-1 to 0 if ar...
分类:
其他好文 时间:
2014-05-14 22:35:28
阅读次数:
326
题意:从一个已排序的数组中移除掉重复的元素,每个元素最多可重复两次
思路: 思路和Remove Duplicates from Sorted Array一样,不过要设置一个计数变量,表示当前值出现的次数
出现次数少于2可以加入到新数组,多于2则不可以。每次遇到一个新变量要把计数变量重新设置为1,加入新数组要加1
复杂度:时间O(n), 空间O(1)...
分类:
其他好文 时间:
2014-05-14 21:03:00
阅读次数:
262
题目描述:
定义字符串左旋转操作:把字符串前面的若干个字符移动到字符串尾部,如把字符串 abcdef 左旋转 2 位得到字符串 cdefab。请实现字符串左旋转的函数,要求对长度为 n 的字符串操作的时间复杂度为 O(n),空间复杂度为 O(1)。
解法一:暴力移位法
此方法就是将需要移动的字符串逐个移动到大字符串的末尾
移动一个字符(java方法)
/**
*
* ...
分类:
其他好文 时间:
2014-05-14 20:55:47
阅读次数:
281