- 博客(69)
- 资源 (1)
- 收藏
- 关注
原创 LeetCode:N-Queens
/**The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.Given an integer n, return all distinct solutions to the n-queens puzzle.E
2013-10-18 11:31:52
1012
原创 LeetCode:N-Queens II
/**Follow up for N-Queens problem.Now, instead outputting board configurations, return the total number of distinct solutions.题目大意:N皇后问题,输入N,输出解的个数经典题目了,皇后们横、竖、斜都不可以碰到**/public class Solution
2013-10-18 11:29:55
695
原创 LeetCode:Divide Two Integers
/**Divide two integers without using multiplication, division and mod operator.题目大意:算两个整数相除的结果,不能用乘号、除号、求余号注意:提供的两个数只限制是整数,可以是正、负、零**/public class Solution { public int divide(int dividend,
2013-10-17 21:49:47
664
原创 LeetCode:Merge Two Sorted Lists
/** * Merge two sorted linked lists and return it as a new list. * The new list should be made by splicing together the nodes of the first two lists. * * Definition for singly-linked list. * pu
2013-10-17 20:16:42
664
原创 LeetCode:Remove Element
/**Given an array and a value, remove all instances of that value in place and return the new length.The order of elements can be changed. It doesn't matter what you leave beyond the new length.题目
2013-10-17 19:55:39
948
原创 LeetCode:Integer to Roman
/**Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.题目大意:把一个整数变成罗马数字,输入数字是1-3999先恶补一下罗马数字相关知识: 最常见的罗马数字就是钟表的表盘符号: I, II, III,
2013-10-17 19:26:25
604
原创 LeetCode:Container With Most Water
/**Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find
2013-10-17 18:29:40
694
原创 LeetCode:Two Sum
/**Given an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numbers such that they add up to the target, w
2013-10-17 10:16:03
610
原创 做算法题时候的一些基础概念
时间复杂度:1、概念:a、时间复杂度:某个算法的时间耗费,他是该算法所求解时间规模n的函数;b、渐进时间复杂度:当问题规模趋向无穷大时,该算法时间复杂度的数量级;一般评价算法的时间性能,用的就是渐进时间复杂度,就简称为时间复杂度,记作T(n),T(n) = O( f(n) )。2、大O表示法 如果要全面分析一个算法,需要考虑算法在最坏情况、最好情况和平均情况下的时间代
2013-10-17 09:29:30
874
原创 操作系统 信号量 vs 互斥锁
1、用途解释:信号量:用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在 哪里)。互斥锁:是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这 个资源。比如对全局变量的访问,有时要加锁,操作完了,在解锁。2、区别:
2013-09-19 16:12:10
1348
原创 基础算法 二分查找
用Groovy写的,复习二分查找array = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]length = array.size()def checkIndex(def num, int index){ println "Index of number " + num + " is " + index;}def search =
2013-09-19 12:02:40
952
原创 基础算法 排序
用Groovy写的,用来复习复习基本的排序算法array = [5,8,1,3,6,2,7,4,9,0,11,15,13,12,14,10]biggerResult = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]smallerResult = [15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]length = arr
2013-09-19 11:54:38
728
原创 Java多线程 12 剩下的一些特性
有关Java多线程的主要内容都差不多完了,还有一些特别的方法和属性:package thread;/*join()当A线程执行到了B线程的 join() 方法时,A就会等待。等B线程都执行完,A才会执行。join可以用来临时加入线程执行。如在 a 线程处调用 b.join(),这个方法影响的线程只有 a 和 b 两个toString()官方解释: 返回该线程的字符
2013-09-19 00:17:08
786
原创 Java多线程 11 终止线程
可以终止线程的 stop() 方法已经过时,现在终止线程的更好的方法是:直接让run()方法运行结束。package thread;/*如何停止线程?stop方法已经过时。只有一种方法,run方法结束。开启多线程运行,运行代码通常是循环结构。只要控制住循环,就可以让run方法结束,也就是线程结束。特殊情况:当线程处于了冻结(wait)状态。就不会读取到标记。那么线程就不
2013-09-19 00:15:05
782
原创 Java多线程 10 处理锁的更好选择
相对与从前苦逼的同步机制,Java 5 出现了更优化更直观的 Lock 和 Condition 两个新机制可以用,并且一个 Lock 可以对应多个 Condition,从而允许不一样的等待和唤醒机制。package thread;import java.util.concurrent.locks.*;/*该对象可以Lock锁 进行获取。该示例中,实现了本方只唤醒对方操作。JD
2013-09-19 00:13:34
911
原创 Java多线程 9 多个生产者和消费者
多个生产者和消费者的时候,需要考虑更多情况package thread;/*对于多个生产者和消费者。为什么要定义while判断标记。原因:让被唤醒的线程再一次判断标记。为什么定义notifyAll,因为需要唤醒对方线程。因为只用notify,容易出现只唤醒本方线程的情况。导致程序中的所有线程都等待。*/public class Thread_6_ProducerCo
2013-09-19 00:11:05
1095
原创 Java多线程 8 单一生产者消费者
著名的生产者和消费者,如果各只有一个,问题会很简单package thread;/*线程间通讯(间接通信):其实就是多个线程在操作同一个资源,但是操作的动作不同。对于此类操作,一般来说可以把共同操作的那个共享资源作为锁(也可以用其他的,只要是用的同一个锁就行)等待 - 唤醒 机制sleep() Thread类的静态方法,将当前线程睡眠,不会释放任何资源wait();
2013-09-19 00:04:40
989
原创 Java多线程 7 死锁
多线程下不可不考虑的死锁问题package thread;/*引起死锁的四个条件:1、互斥:至少有一个资源必须独享2、占有并等待:进程必须占有至少一个资源,并且等待另一个资源3、非抢占:资源不可抢占,只有进程完成后释放4、循环等待:有一组进程循环等待对方的资源Java中出现死锁的其中一个情况:同步中嵌套同步。*/public class Thread_5_Dead
2013-09-19 00:00:54
860
原创 Java多线程 6 静态同步方法的锁
对于静态同步方法,加在上面的锁就是其存在的类本身package thread;/*如果同步函数被静态修饰后,使用的锁是什么呢?通过验证,发现不在是this。因为静态方法中也不可以定义this。静态进内存是,内存中没有本类对象,但是一定有该类对应的字节码文件对象。类名.class 该对象的类型是Class静态的同步方法,使用的锁是该方法所在类的字节码文件对象。 类名.c
2013-09-18 23:58:40
1635
原创 Java多线程 5 同步方法的锁
创建同步方法之后,这个同步代码块使用的锁就是当前对象package thread;/*同步函数用的是哪一个锁呢?函数需要被对象调用。那么函数都有一个所属对象引用。就是this。所以同步函数使用的锁是this。通过该程序进行验证。使用两个线程来买票。一个线程在同步代码块中。一个线程在同步函数中。都在执行买票动作。*/public class Thread_4_Sy
2013-09-18 23:57:30
787
原创 Java多线程 4 同步方法
如果一个方法中的所有代码都需要同步,那可以直接创建同步方法package thread;/*需求:银行有一个金库。有两个储户分别存300员,每次存100,存3次。目的:该程序是否有安全问题,如果有,如何解决?如何找问题:1,明确哪些代码是多线程运行代码。2,明确共享数据。3,明确多线程运行代码中哪些语句是操作共享数据的。哪些代码该同步,哪些不该同步,必须搞清楚
2013-09-18 23:55:46
890
原创 Java多线程 3 同步代码块
实现多线程时,如果遇到共享资源的情况,需要对不同线程操作共享资源的代码块进行同步加锁:package thread;/*通过分析,发现 RunnableDemo 会打印出0,-1,-2等错票。多线程的运行出现了安全问题。问题的原因: 当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完, 另一个线程参与进来执行。导致共享数据的错误。解
2013-09-18 23:52:40
957
原创 Java多线程 2 Runnable类
Java实现多线程更好的方法:实现Runnable接口并实现run()方法package thread;/* 线程运行的五个状态:创建,运行(有运行资格,正在运行),等待(无运行资格,无运行),就绪(有运行资格,无运行),消亡 创建 --start()--> 就绪 就绪 --获得CPU--> 运行 运行 --中断--> 就绪 运行 --sleep()--> 等
2013-09-18 23:50:26
955
原创 Java多线程 1 Thread类
Java实现多线程编程的方法之一:继承Thread类并重写run()方法:package thread;/*进程:是一个正在执行中的程序。每一个进程执行都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。线程:就是进程中的一个独立的控制单元。线程在控制着进程的执行。一个进程中至少有一个线程。Java VM 启动的时候会有一个进程java.exe.该进程中至少一个线
2013-09-18 23:48:56
804
转载 Eclipse换肤插件
转载自:http://blog.csdn.net/zhyl8157121/article/details/7838676今天在网上看到别人的Eclipse皮肤很漂亮,所以也就查了一下如何更改。 其实很简单,现在一起来: Help -> Install New Software -> add -> name( 随便输入什么,我输入的是 C
2013-07-17 13:04:40
1399
原创 Java 网络编程
1.1、TCP,同步版本的Server:package com.socket;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.ServerSocket;impo
2013-05-15 20:51:46
875
原创 Java Struts
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <!-- namespace对应访问路径, 可以“”和“/”表示所有作用(无论前面的
2013-05-15 17:23:39
793
原创 Java 泛型编程
package com.generic;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Test { public static void main(String[] args){ useTool(); System.out.println();
2013-05-15 17:20:30
732
转载 C++多态的实现原理
转载自:http://hi.baidu.com/1021161795/blog/item/0ea7ea2ce518af414fc226ce.html1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。3. 多态性是一个接口多种
2013-04-18 19:23:42
605
转载 Eclipse 快捷键
编辑相关快捷键 Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。 1. 【ALT+/】 此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。
2013-03-12 10:39:30
594
原创 播音员主持人训练
说话很重要,这是我整理的一份训练手册,共勉。如果发现其中有任何错漏,敬请提出,感激不尽!此外,转载请注明出处,谢谢。1 用气 呼吸的正确与否,是决定声音好坏的关键。气不足,声音黯淡无光;用气过猛,又损害声带,而且噪音重。一般人是单纯的胸式呼吸法,声音虚而不实,没有底气。 我们采用胸膈呼吸法。膈----横膈膜,在胸、腹之间。像一个圆屋顶,吸气
2013-01-24 12:19:53
1288
原创 C++学习笔记汇总
算法课上完了,整理一下C++的一些使用上的经验技巧,该总结主要参考了以下文章/网站,首先对他们的工作成果表示感谢!1、 @mannhello的文章:c++容器简介与比较2、 原作者未知的文章:C++中几个容器的比较3、 神一般的C++库函数资料网站:www.cplusplus.com,总结超级全面的,很值得一看 再次对他们的工作成果表示感谢! 如果发现任何错漏
2013-01-19 14:59:28
1263
转载 程序员究竟该如何提高效率
看原文可以点这里,感谢 @meng-meng 童鞋的精彩翻译。“拖延症”这个名词近些年很火,似乎每个人都觉得自己的效率不高,很难集中注意力做好手头的事,那我们究竟该如何提高自己的工作效率呢,知名程序员Aaron Swartz来告诉你。Aaron写过一篇很有名的文章《HOWTO: Be more productive》,这篇文章写的实在是太好了,我看了好多遍,很赞同作
2013-01-15 14:31:26
617
翻译 TopCoder Getting Started in Component Development Competitions(组件开发详细步骤)
【写在前面】 英文原版请看这里。 如果发现有任何错误及疏漏,敬请告知,感激不尽! 转载请注明出处,谢谢。步骤1:阅读TopCoder组件开发指南 英文版的组件开发指南请看这里,翻译版可以看这里,它提供了在TopCoder进行组件开发的详细资料,该指南由评审委员会人员 AdamSelene 编写。步骤2:安装所需要的软件 最重
2013-01-14 09:31:49
910
翻译 TopCoder Component Development Tutorial(组件开发说明书)
【写在前面】 想研究TopCoder整点小外快,翻来找去只找到 @Xviewee 在2008年翻译的文章,由于年代久远,我对TopCoder组件开发说明书更新到最新版,看他的原文点这里,首先对他的工作表示感谢! TopCoder Component Development Tutorial 英文版原文看这里。 如果发现本文有任何错漏敬请告知,感激不尽。 本人
2013-01-13 22:31:43
2980
原创 质数判断
【问题】给定一个正整数n,如何判断其是否质数呢?1、方法一:最基本的,将其除以[2, squt(n)],只要有一个数可以整除就不是质数;2、方法二:根据素数唯一分解定理:任何一大于1的整数均可以分解为素数的乘积,若不考虑素数乘积的先后顺序,则分解式是唯一的。 由此可知,我们并不需要测试第一种方法里的所有数字,而只需要提取其中的质数,如果要是用这个方法就需要先生成[2, squt(
2013-01-10 22:03:14
1250
原创 高精度数值运算C++版本
/*各种基本数值运算的高精度合集,部分代码参考猥琐帝@xiehaoyun2012,感谢其无私奉献的精神 包括: 两个高精度正整数加法 两个高精度正整数乘法 两个高精度正整数减法 两个高精度正整数除法 两个高精度正整数求余 两个高精度正整数数求最大公约数 两个高精度正整数数求最小公倍数 注意:不排除还有没被发现的Bug! */
2013-01-10 21:06:21
1475
原创 Word 07 标题自动编号
研究了一上午终于研究出来了,有够麻烦···设置成功之后可以对标题进行自动编号,这对制作目录等方面都有很大方便1、新建一个Word文件,里面的默认标题格式是这个样子的:而目标效果要这个样子:2、那么,要达到这个效果,需要以下步骤:2.1、点击【开始 - 段落 - 多级列表 - 定义新的列表样式】,在这里给他起个好名字2.2、然后点击【格式 - 编号】,
2013-01-10 11:28:50
998
原创 Sicily 1381. a*b
/*【题目大意】高精度乘法 【解题思路】直接把1129制造出来的大数加法用过来:1、多位数乘一位数,可以直接使用加法完成。2、多位数乘形如d*10n的数,可以转换成多位数乘一位数来处理。3、多位数乘多位数,可以转换为若干个“多位数乘形如d*10n的数与多位数乘一位数”之和。因此,多位数乘多位数最终可以全部用加法来实现,专门另外写乘法什么的···何必如此想不开呢··· *//*
2013-01-06 11:52:40
612
Linear Algebra and Its Applications 4ed - Gilbert Strang
2011-12-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人