- 博客(16)
- 收藏
- 关注
原创 CSAPP练习题
2.35 A. 假定一个k位指数和n位小数的浮点格式,给出不能准确描述的最小正整数的公式(因为要想准确表示它需要n+1为小数)。不能准确描述的最小正整数的公式如下式所示: 在IEEE浮点标准中,正整数只能由规格化值表示,因为非规格化值只能表示小于或等于0的数(假设k>=2),而特殊数值则只能表示正无穷、负无穷和NaN。 不能准确描述的最小正整数比能准确描述的最大...
2018-03-26 00:01:59
3237
原创 处理器、指令集架构和操作系统——32-bit与64-bit
下图是一个典型系统的硬件组成,其中的总线、PC(程序计数器)和寄存器的大小都被设计成字(word)。字长(即字的字节数)是一个基本的系统参数,在不同的系统中通常不一样,如嵌入式设备往往只有1或2个字节,而常见的系统则为4字节或8字节。 我们在安装操作系统和软件的时候通常会面临32-bit与64-bit两种选择,并且有时还需要了解自己电脑的处理器是32bit还是64-bit的。 那么,上面提...
2018-03-20 01:41:10
8872
原创 用curl测试后台API
curl是一种用来测试应用协议的命令行工具,支持包括HTTP、FTP、SMTP和TELNET等在内的多种协议,并且提供了代理、认证和cookies等丰富的特性。curl的功能非常强大,这里简单记录一下自己在后台开发时涉及的用法(HTTP协议)。1、最基本的用法直接在curl后面接URL,curl会把网页的HTML源码直接打印到stdout。curl www.example.com2、显示HTTP响...
2018-03-16 23:03:10
3334
原创 A Byte of Python习题:用于备份文件的Python脚本
最近在看《简明 Python 教程(A Byte of Python)》,书中有一个小练习,需求为“我想要一款程序来备份我所有的重要文件”。具体要求如下:(1)需要备份的文件与目录应在一份列表中予以指定;(2)备份必须存储在一个主备份目录中;(3)备份文件将打包压缩成 zip 文件;(4)zip 压缩文件的文件名由当前日期与时间构成;(5)我们使用在任何 GNU/Linux 或 Unix 发行版中...
2018-03-13 23:26:21
413
原创 DP中辅助空间的两种常见用法
DP(动态规划)本质上是一种利用辅助空间来降低时间复杂度的方法,它利用表来存储中间状态,从而避免子问题的重复计算。DP中辅助空间有两种常见的用法,下面通过一道题来演示。问题描述给出一个包含非负整数的数组。选手1和选手2轮流从该数组取数,每次取数时只能从数组头部或尾部取数,并且取过的数后面不可以再取。当所有数都被取完时,统计两个选手各自所取数的和,和较大的选手获胜。选手1先取,求选手1能否获胜(当两...
2018-03-13 11:12:50
733
原创 0-1背包问题:Ones and Zeroes
问题描述输入一组字符串Array,其中的每个字符串中只可能出现’0’和’1’两种字符;给定两个整数m和n。现在从这组字符串中选取一些字符串,求在保证所选字符串中’0’的个数之和不超过m、’1’的个数之和不超过n的前提下,能够选取到的字符串的最大个数。例如:Input: Array = {"10", "0001", "111001", "1", "0"}, m = 5, n = 3Output: 4...
2018-03-12 11:32:51
268
原创 一个典型的DP优化过程
问题描述输入一个二维字符类型数组,其元素取值只可能为'0'或'1'。求该数组中由'1'构成的最大正方形的面积(即包含的元素个数)。例如,如果输入如下二维数组:1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0那么,就输出4。---------------------------一、Brute Force最容易想到的是一种比较直接的做法:(1)遍历该二维数组;(2)如果当前元素...
2018-03-11 13:26:14
220
原创 Find Right Interval(寻找右区间)
题目来源给出一个区间数组,要求其中每个区间的最邻近右区间。如果存在,则返回最邻近右区间在数组中的下标;如果不存在,则返回-1。区间A的最邻近右区间B定义为,区间B的左边界大于或等于区间A的右边界,并且区间B是该区间数组所有满足条件的区间中左边界最小的区间。题目保证所有区间的右区间大于或等于其左区间,并且所有区间的左区间都互不相同。例如:Input: [ [1,2] ]Outpu
2018-01-07 09:27:24
362
原创 UNIX 标准之ISO C、IEEE POSIX和Single UNIX Specification
UNIX标准用于保证不同的UNIX系统实现能提供一致的编程环境,从而使得在一个UNIX系统上开发和打包的UNIX程序也可以在其它UNIX系统上运行。UNIX标准涉及ISO C、IEEE POSIX和Single UNIX Specification这三个关系密切的标准。一、ISO C标准C语言是一种在恰当的时间出现的恰当的语言,统治了操作系统编程。 ISO C标准的目的在于提高C程序在
2018-01-03 20:19:18
1457
原创 系统调用与库调用
一、计算机系统的组成1、计算机系统由硬件和软件组成,软件包括操作系统和普通软件,如下图所示:多数计算机有两种运行模式:内核态和用户态。操作系统运行于内核态,可以执行机器支持的任何指令;普通软件运行于用户态,只能执行机器指令的一个子集(如I/O操作相关指令在用户态中是被禁止的)。2、任何单CPU计算机一次只能执行一条指令。如果一个过程正在用户态运行一个用户程序,并且需要一个系
2017-12-22 20:48:27
2018
原创 Wiggle Subsequence
题目来源输入一个整型数组nums,该数组表示一个序列,序列中元素的大小顺序是随机的。从数组中去除若干个元素后,可以得到wiggle sequence。求能够得到的最长wiggle sequence的长度。wiggle sequence是一种满足相邻元素的差值严格遵循正负交替特点的序列。长度为1的序列都算作wiggle sequence。例如:Input: [1,7,4,9,2,5]
2017-12-11 11:05:15
216
原创 Word Ladder(单词阶梯)
题目来源Given two words (beginWord and endWord), and a dictionary's word list, find the length of shortest transformation sequence from beginWord to endWord, such that:Only one letter can be cha
2017-12-09 15:05:36
850
原创 从零开始学Java(二十)注解
一、概述1、注解(Annotations):也被称为元数据(matadata),为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用这些数据。(1)定义注解并且将该注解应用于代码当中,就可以为该代码添加除了代码外的信息,并且这些信息会由编译器进行检查,以对其提供编译期类型检查保护。这样,就得到了额外信息和源代码结合在一起的干净易读的代
2017-03-01 23:17:00
273
原创 从零开始学Java(三)操作符与流程控制
1、Java中与流程控制相关的关键字包括:if-else,switch,while,do-while,for,return,break,continue。注意,其中并不包括goto语句,但是在Java中仍然可以进行类似goto那样的跳转。2、Java里唯一用到逗号操作符的地方就是for循环的控制表达式——使用一系列逗号分隔的语句,而且那些语句均会独立执行。3、forea
2017-03-01 23:05:38
240
原创 从零开始学Java(二)一切都是对象
一、Java是一种更“纯粹”的面向对象程序设计语言1、尽管Java是基于C++的,但是相比之下,Java是一种更“纯粹”的面向对象程序设计语言C++和Java都是混合/杂合型语言,但是后者的设计者认为这种杂合性并不像C++中那么重要。C++之所以成为一种杂合语言主要是因为它支持与C语言的向后兼容,作为C的一个超集,它具有许多C语言不具备的特性,而这些特性使得C++在某些方面显得
2017-02-21 23:19:21
682
原创 搭建整合Struts2,Spring,Hibernate的Web开发框架
记录基于Maven和Eclipse的三大框架(Struts2、Spring、Hibernate)整合过程,最终提供一个Demo,方便日后的开发。
2016-12-22 23:16:14
673
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人