- 博客(26)
- 收藏
- 关注
转载 Python十进制数学计算模块decimal
转自:http://www.cnblogs.com/moinmoin/archive/2011/09/26/2190720.htmlPython提供了decimal模块用于十进制数学计算,它具有以下特点:提供十进制数据类型,并且存储为十进制数序列;有界精度:用于存储数字的位数是固定的,可以通过decimal.getcontext().prec=x 来设定,不同的数字可以有不同的精度浮点
2017-02-26 23:31:41
1566
原创 使用位运算解决subsets
package subSets;import java.util.ArrayList;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub String s = "abc"; for(int i=0;i<subSets(s).size()
2015-10-24 22:52:20
410
原创 求字符串中指定开始和结束字符串的子串数量
例如:String s = abababab;String sFrom = a;String sTo = b;那么结果为4;例如:S = aba; sFrom = ab; sTo = ba;那么结果为1;例如:S = round; sFrom = ro;sTo = on;那么结果为0。上代码:import java.util.Scanner;public class test
2015-10-24 21:28:27
475
原创 最大子数组
给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。样例给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6//先使用动态规划维护一个符合连续数组条件的每个位置的值的数组。然后遍历该数组,找出其中最大的值。public class Solution { /** * @param nums:
2015-10-07 13:04:12
348
原创 主元素
给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。方法1:使用hashmap来存储数组中的元素及对应的次数。空间复杂度较高。public class Solution { /** * @param nums: a list of integers * @return: find a majority number */
2015-10-07 11:48:38
521
原创 二叉树遍历
前序遍历:非递归解法public class Solution { /** * @param root: The root of binary tree. * @return: Preorder in ArrayList which contains node values. */ public ArrayList preorderTraversa
2015-10-06 21:33:24
311
原创 二叉树的层次遍历
给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.va
2015-10-06 21:00:26
315
原创 带最小值操作的栈
实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。public class Solution { private Stack stack; private Stack minStack; public Solution() { //
2015-10-06 20:41:13
368
原创 子树判断
有两个不同大小的二进制树: T1 有上百万的节点; T2有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。public class Solution { /** * @param T1, T2: The roots of binary tree. * @return: True if T2 is a subtree of T1, or false.
2015-10-06 18:13:43
371
原创 合并两个排序链表
将两个排序链表合并为一个新的排序链表样例给出 1->3->8->11->15->null,2->null, 返回1->2->3->8->11->15->null。解法1:public class Solution { /** * @param ListNode l1 is the head of the linked list * @pa
2015-10-06 12:34:09
314
原创 删除链表中倒数第n个节点
删除链表中倒数第n个节点给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。样例:给出链表1->2->3->4->5->null和 n = 2.删除倒数第二个节点之后,这个链表将变成1->2->3->5->null./** * Definition for ListNode. * public class ListNode { * int val;
2015-10-06 12:06:31
346
原创 奇偶分割数组
分割一个整数数组,使得奇数在前偶数在后。样例给定 [1, 2, 3, 4],返回 [1, 3, 2, 4]。public class Solution { /** * @param nums: an array of integers * @return: nothing */ public void partitionArra
2015-10-06 11:36:52
349
原创 搜索二维矩阵 II
写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每一列的整数从上到下是排序的。在每一行或每一列中没有重复的整数。public class Solution { /** * @param matrix: A list of lists of integers * @pa
2015-10-03 22:36:21
1315
原创 用栈实现队列
正如标题所述,你需要使用两个栈来实现队列的一些操作。队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。pop和top方法都应该返回第一个元素的值。public class Solution { private Stack stack1; private Stack stack2;
2015-10-03 22:27:07
361
原创 前序遍历和中序遍历树构造二叉树 && 中序遍历和后序遍历树构造二叉树
public class Solution { /** *@param preorder : A list of integers that preorder traversal of a tree *@param inorder : A list of integers that inorder traversal of a tree *@return :
2015-10-03 21:53:58
387
原创 寻找旋转排序数组中的最小值
假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。你需要找到其中最小的元素。你可以假设数组中不存在重复的元素。public class Solution { /** * @param num: a rotated sorted array * @return: the minimum
2015-10-03 21:32:40
444
原创 翻转链表
public class Solution { /** * @param head: The head of linked list. * @return: The new head of reversed linked list. */ public ListNode reverse(ListNode head) { // write
2015-10-03 21:21:37
292
原创 单例Singleton
//恶汉式,可以在多线程环境下使用。但是会过早地创建实例,从而减低内存的使用效率class Solution { /** * @return: The same instance of this class every time */ private Solution(){}; public static Solution instance = ne
2015-10-03 21:04:18
353
原创 斐波纳契数列
查找斐波纳契数列中第 N 个数。所谓的斐波纳契数列是指:前2个数是 0 和 1 。第 i 个数是第 i-1 个数和第i-2 个数的和。斐波纳契数列的前10个数字是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...//使用循环的方法可以避免堆栈溢出class Solution { /** * @param n: an i
2015-10-03 20:47:05
450
原创 空格替换
设计一种方法,将一个字符串中的所有空格替换成 %20。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。public class Solution { /** * @param string: An array of Char * @param length: The true length of the string * @r
2015-10-03 20:41:43
324
原创 二进制中有多少个1
两种解法如下://第一种解法,public class Solution { /** * @param num: an integer * @return: an integer, the number of ones in num */ public int countOnes(int num) { // writ
2015-10-03 20:11:50
402
转载 《现代操作系统》读书笔记之——进程间通信
很多时候,进程需要和其他的进程进行通信。比如shell中的管道命令:ps -ef | grep nginx,一个命令的输出,作为另一个进程的输入,这就是进程间通信(Interprocess Communication)。 进程间通信主要需要解决三个问题: 1.一个进程如何给另一个进程传递信息 2.如何确保进程之间不互相干扰、妨碍 3.当进程间出现依赖关系时,
2015-06-18 22:52:17
1454
转载 《现代操作系统》读书笔记之——进程调度(二)
7.交互系统的调度算法时间片轮转调度算法(Round-Robin Scheduling) 时间片轮换调度算法是最古老、最简单、最公平并且使用最广泛的调度算法之一。每个进程被分配一段时间间隔,叫做时间片(quantum)。进程在这个时间间隔内允许运行,如果时间片用完了,那么CPU将会被抢占并且分给别的进程。如果在时间片结束之前,进程阻塞或者是结束了,那么CPU也会被分配
2015-06-18 22:51:14
940
转载 《现代操作系统》读书笔记之——进程调度(一)
如果计算机支持多道程序设计,那么它会经常碰到多个进程或者线程在同一时刻竞争CPU。只要当两个进程同时进入就绪状态,这种情况就会发生。但是CPU只有一个,那么这时候就需要做一个选择:到底接下来该选择哪个进程运行。操作系统做这个选择的部分就叫做调度器(scheduler),而使用到的算法叫做调度算法(scheduling algorithm)。 很多对进程调度使用的东西对于线程调度同样适
2015-06-18 22:49:33
840
转载 函数指针作为某个函数的参数
函数指针变量是一个变量,可以作为某个函数的参数来使用的。 一个实例: 设计一个 CallMyFun 函数,这个函数可以通过参数中的函数指针值不同来分别调用 MyFun1、MyFun2、MyFun3 这三个函数(注:这三个函数的定义格式应相同)。 #includevoid MyFun1(int x); void MyFun2(int x); void MyFun3(int x)
2015-05-28 23:26:00
344
转载 堆和栈的区别
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态
2015-01-25 10:48:08
442
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人