自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jjjcainiao的专栏

Program is Art

  • 博客(84)
  • 资源 (1)
  • 收藏
  • 关注

转载 Linux命令:ln

ln是linux中一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。1.命令格式: ln [参数][源文件或目录][目标文件或目录]2.命

2014-12-22 14:48:29 529

转载 linux mount (挂载命令)详解

挂接命令(mount) 首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的。 命令格式:mount [-t vfstype] [-o options] device dir 其中: 1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有: 光盘或光盘镜像:iso9

2014-12-21 22:03:26 505

原创 非递归实现树的遍历

【代码】#include #include using namespace std;typedef struct Node{ char key; struct Node *lchild, *rchild;}*Tree, TNode;void PreOrder(Tree T) //先序遍历{ if (T == NULL) return; TNode *curr = T

2014-10-08 15:19:53 742

原创 操作系统任务调度问题

【问题】操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种。其中,系统任务的优先级 ,用户任务的优先级 >= 50且 <= 255。优先级大于255的为非法任务,应予以剔除。现有一任务队列task[],长度为n,task中的元素值表示任务的优先级,数值越小,优先级越高。函数scheduler实现如下功能,将task[]中的任务按照系统任务、用户任务依次存放到 system

2014-09-04 21:26:32 1240

原创 单链表逆序

【问题】 单链表逆序【代码】#include #include #include typedef struct ListNode { int value; struct ListNode *next;}ListNode;typedef struct ListNode *List;List reverseList(List head) //列表逆序{ List

2014-09-04 21:07:36 649

原创 约瑟夫环

【问题】• 问题描述: 输入一个由随机数组成的数列(数列中每个数均是大于0的整数,长度已知),和初始计数值m。从数列首位置开始计数,计数到m后,将数列该位置数值替换计数值m,并将数列该位置数值出列,然后从下一位置从新开始计数,直到数列所有数值出列为止。如果计数到达数列尾段,则返回数列首位置继续计数。请编程实现上述计数过程,同时输出数值出列的顺序比如: 输入的随机数列为:3,1,2,

2014-09-04 17:02:42 671

原创 2014届华为校园招聘机试题

一、题目描述(60分):通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);【

2014-09-04 15:29:36 599

原创 地铁换乘

【问题】描述:已知2条地铁线路,其中A为环线,B为东西向线路,线路都是双向的。经过的站点名分别如下,两条线交叉的换乘点用T1、T2表示。编写程序,任意输入两个站点名称,输出乘坐地铁最少需要经过的车站数量(含输入的起点和终点,换乘站点只计算一次)。地铁线A(环线)经过车站:A1 A2 A3 A4 A5 A6 A7 A8 A9 T1 A10 A11 A12 A13 T2 A14 A15

2014-09-04 12:31:36 948

原创 字符串编辑距离

【题目】给定一个源串和目标串,能够对源串进行如下操作:1. 在给定位置上插入一个字符2. 替换任意字符3. 删除任意字符写一个程序,返回最小操作数,使得对源串进行这些操作后等于目标串,源串和目标串的长度都小于2000。【分析】参考自:点击打开链接此题常见的思路是动态规划,假如令dp[i][j] 表示源串S[0…i] 和目标串T[0…j] 的最短编

2014-08-26 11:08:16 1055

原创 出现次数超过一半的数字

【问题】题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。【分析】解法1:先排序,排序后数组中间的那个元素就是要找的那个数字。时间复杂度O(n*logn)。解法2:既要缩小总的时间复杂度,那么可以用查找时间复杂度为O(1)的hash表,即以空间换时间。哈希表的键值(Key)为数组中的数字,值(Value)为该数字对应的次数。然后直接遍历整个hash表,

2014-08-22 20:32:06 652

原创 给定一整型数组,若数组中某个下标值大的元素值小于某个下标值比它小的元素值,称这是一个反序

【问题】找出反序的个数给定一整型数组,若数组中某个下标值大的元素值小于某个下标值比它小的元素值,称这是一个反序。 即:数组a[]; 对于i a[j],则称这是一个反序。 给定一个数组,要求写一个函数,计算出这个数组里所有反序的个数。【代码】#include #include #include int sumNum = 0;void merge(int *a

2014-08-15 21:56:21 1902

原创 找出数组中唯一的重复元素

【问题】1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。 每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助存储空间,能否设计一个算法实现?【代码】#include #include #include /*根据异或法的计算方式,每两个相异的数执行异或运算之后,结果为1;每两个相同的数异或之后,结果为0,任何数与0异或,结果

2014-08-15 19:08:10 1062

原创 两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i]

【问题】1、不用除法运算两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]...*a[N-1]/a[i]; 要求:1.不准用除法运算2.除了循环计数值,a[N],b[N]外,不准再用其他任何变量(包括局部变量,全局变量等)3.满足时间复杂度O(n),空间复杂度O(1)。【分析】提示:题目要求

2014-08-15 17:23:33 1522

原创 换硬币问题

【问题】想兑换100元钱,有1,2,5,10四种钱,问总共有多少兑换方法。const int N = 100;int dimes[] = {1, 2, 5, 10};int arr[N+1] = {1};int coinExchange(int n) //动态规划{ int i, j; for (i = 0; i < sizeof(dimes)/sizeof(int);

2014-08-15 00:05:01 1238

原创 字符串所有组合

【问题】输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。【分析】对于字符串中每个字符,只有两种情况:一种就是出现在组合中,一种是不出现在组合中。【代码】void combination(char *str, char *res, int strPos, int resPos, int size){

2014-08-09 21:32:08 684

原创 字符串去重复全排列算法

【题目描述】输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串abc、acb、bac、bca、cab 和 cba。【分析】从集合中依次选出每一个元素,作为排列的第一个元素,然后对剩余的元素进行全排列,如此递归处理,从而得到所有元素的全排列。以对字符串abc进行全排列为例,我们可以这么

2014-08-09 18:04:29 3310

转载 可变参数va_start,va_arg,va_end

一)写一个简单的可变参数的C函数 下面我们来探讨如何写一个简单的可变参数的C函数.写可变参数的 C函数要在程序中用到以下这些宏: void va_start( va_list arg_ptr, prev_param ); type va_arg( va_list arg_ptr, type ); void va_end( va_list arg_ptr ); va_li

2014-08-01 19:39:11 561

转载 C语言中volatile关键字的作用

一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的

2014-07-31 10:35:49 413

原创 CII-原子

#ifndef ATOM_INCLUDED#define ATOM_INCLUDEDextern int Atom_length(const char *str);extern const char *Atom_new(const char *str, int len);extern const char *Atom_string(const char *str);extern con

2014-07-30 21:45:39 770

原创 CII-2.4指针常量和常量指针

#define T Stack_Ttypedef struct T *T;struct T { int count; struct elem { void *x; struct elem *link; } *head;}const T stk //指针常量, const修饰struct T *。地址不能变。 const struct T *stk //指向常量的指

2014-07-30 17:43:24 597

原创 C程序设计的抽象思维-算法分析-大多数元素

【问题】请编写以下函数 int MajorityElement(int array[],int n);该函数返回数组array中的多数元素。多数元素是指在占绝对多数(至少51%)的一个值。如果多数元素不存在,那么返回常量NoMajorityElement,该函数必须满足下面的条件: 1. 必须以O(N)时间运行。 2. 必须使用O(1)的附加空间。换句话说,可用个别的临时变量,而不

2014-07-30 17:34:13 1109

原创 CII-div和mod

C语言标准强调,如果x / y是可以表示的,那么(x / y) * y + x % y 必须等于x。dangyige

2014-07-29 16:54:40 701

原创 SICP-练习2.34

【练习2.34】对于x的某个给定值,求出一个多项式在x的值,也可以形式化为一种累积。假定需要求下面多项式的值:an*x^n + an-1*x^n-1 + .... + a1*x + a0采用著名的Horner规则,可以构造出下面的计算:(...(an*x + an-1)*x + ... + a1)*x + a0换句话说, 我们可以从an开始,乘以x,再加上an-1,乘以x,如此

2014-07-23 10:33:32 720

原创 SICP-练习2.17

【问题】请定义出过程last-pair,它返回只包含给定(非空)表里最后一个元素的表:(last-pair (list 23 72 149 34))(34)【分析】last-pair需要处理一下三种情况:空表:引发一个错误单个元素的表:返回这个表本身多于一个元素的表:继续向列表右边前进以下是last-pair的定义:(迭代实现)【代码】(define

2014-07-22 19:32:57 644

原创 SICP-练习2.1

【练习2.1】请定义出make-rat的一个更好的版本,使之可以正确处理整数和负数。当有理数为正时,make-rat应当将其规范化,使它的分子和分母都是正的。如果有理数为负,那么就应只让分子为负。【分析】分子、分母的符号总共有四种情况:1. 分子、分母都为正数,2. 分子为负数,分母为正数。这两种情况下,输入和输出一致。3. 分子、分母都为负数,4. 分子为正数,分

2014-07-17 20:42:54 613

原创 HuaweiOJ-扑克牌大小

【问题描述】扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如:4 4 4 4-jok

2014-07-04 10:59:16 1039

转载 计算斐波纳契数,分析算法复杂度

问题描述:Fibonacci数(Fibonacci Number)的定义是:F(n) = F(n - 1) + F(n - 2),并且F(0) = 0,F(1) = 1。对于任意指定的整数n(n ≥ 0),计算F(n)的精确值,并分析算法的时间、空间复杂度。假设系统中已经提供任意精度长整数的运算,可以直接使用。这其实是个老生常谈的问题了,不过可能在复杂度分析的时候,很多人忽略了

2014-06-30 21:12:58 2709

原创 SICP-求幂

【问题】对一个给定的数计算乘幂问题。【思路1】对一个基数b和一个正整数的指数n,计算出b^n的过程。可以通过下面的这个递归定义:     b^n = b * b ^(n-1)     b^0 = 1直接翻译为如下过程:(define (expt b n) (if (= n 0) 1 (* b (expt b (- n 1)))))这

2014-06-30 16:48:25 669

原创 SICP-换零钱方法的统计

【问题】现有半美元、四分之一美元、10美分、5美分和1美分共5种硬币。若将1美元换成零钱,共有多少种不同方式?【思路】采用递归过程,假定我们所考虑的可用硬币类型种类排了某种顺序,于是就有下面的关系:将总数为a的现金换成n中硬币的不同方式的数目等于将现金数a换成除第一种硬币之外的所有其他硬币的不同方式数目,加上将现金数a-d换成所有种类的硬币的不同方式数目,其中的d是第一

2014-06-29 22:12:06 3013 1

原创 Structure and Interpretation of Computer Programs-Exercise 1.3

【问题】Define a procedure that takes three numbers as arguments and returns the sum of the squares of the two larger numbers.定义一个过程,它以三个数为参数,返回其中较大的两个数的平方和。【普通版】(define (sum-square-largest x y

2014-06-28 21:25:51 1141 1

原创 LeetCode-Insertion Sort List (Python)

【问题】Sort a linked list using insertion sort.【代码】# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Sol

2014-06-27 19:42:39 770

原创 LeetCode-Sort List(Python)

【问题】Sort a linked list in O(n log n) time using constant space complexity.【代码】# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x#

2014-06-27 17:12:11 844

原创 LeetCode-Max Points on a Line (Python)

【问题】Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.【思路】对每一个点,分别计算这个点和其他所有点构成的斜率,具有相同斜率最多的点所构成的直线,就是具有最多点的直线。【代码】class Point: def __in

2014-06-22 22:33:26 995

原创 LeetCode-Evaluate Reverse Polish Notation (Python)

【问题】Evaluate the value of an arithmetic expression in Reverse Polish Notation.Valid operators are +, -, *, /. Each operand may be an integer or another expression.Some examples:

2014-06-22 21:09:06 846

原创 LeetCode-Reverse Words in a String

【问题】Given an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue is sky the".【代码】class Solution: # @param s, a string # @retu

2014-06-22 20:29:57 880

原创 实习题

数学题(前两问用数学方法实现)1. 找出这样的4位数:千位数等于4位数中0的个数,百位数等于4位数中1的个数,十位数等于4位数中2的个数,个位数等于4位数中3的个数。2. 改为7位数,最高位为0的个数,次高位为1的个数,依次类推,结果又如何?3. 编程实现一个函数,求出位数为n时的解,要求算法复杂度尽可能小。解:1.假设这个四位数是:千位

2014-06-20 22:16:03 729

转载 wxPython - ListCtrl列表排序

13.4.2 如何对列表排序?在wxPython中有三个有用的方法可以对列表进行排序,在这一节,我们将按照从易到难的顺序来讨论。在创建的时候告诉列表去排序对一个列表控件排序的最容易的方法,是在构造函数中告诉该列表控件对项目进行排序。你可以通过使用样式标记wx.LC_SORT_ASCENDING或wx.LC_SORT_DESCENDING来实现。这两个标记导致了列表在初始显示

2014-06-20 21:59:12 4739

原创 Python笔记-Grouping Records Together Based on a Field

Grouping Records Together Based on a FieldProblemYou have a sequence of dictionaries or instances and you want to iterate over the data in groups based on the value of a

2014-06-06 15:47:02 922

原创 征服C指针-C的变量种类

C语言的变量具有区间性的作用域。

2014-05-27 09:35:03 844

原创 征服C指针-NULL

#define NULL ((void*)0)

2014-05-26 16:10:00 585

RISC_CPUVHDL实现

用VHDL实现了8位的RISC CPU设计,代码非常完整。适合初学者

2012-12-11

空空如也

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

TA关注的人

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