自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (3)
  • 收藏
  • 关注

转载 Python docstring文档字符串

使用DocStringsPython有一个很奇妙的特性,称为 文档字符串,它通常被简称为 docstrings 。DocStrings是一个重要的工具,由于它帮助你的程序文档更加简单易懂,你应该尽量使用它。你甚至可以在程序运行的时候,从函数恢复文档字符串!使用DocStrings例7.8 使用DocStrings#!/usr/bin/python# Filename:

2012-10-27 06:10:56 14974

转载 Linux下的fork(),exec()等函数的使用

1 引言对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值。fork函数是Unix系统最杰出的成就之一,它是七十年代UNIX早期的开发者经过长期在理论和实践上的艰苦探索后取得的成果,一方面,它使操作系统在进程管理上付出了最小的代价,另一方面,又为程序员提供了一个简洁明了的多进程方法。与DOS和早期的Windows不同,Unix/Linux系

2012-10-21 13:36:19 3387

原创 随便举个例子,说明单线程比多线程编程提高性能

看具体情况,具体应用,具体OS例如:有的OS不支持内核级线程,这时候就要注意了,一个进程中的一个用户级线程有系统阻塞调用(例如,IO阻塞操作)的时候,这个进程中的其他用户级线程都回被阻塞住了,这时候就不如多进程,每个进程单线程来处理。因为,在操作系统看来,是这个进程进行了系统阻塞调用,而不是这个进程中的线程进行了系统阻塞调用。

2012-10-21 12:07:30 6505

转载 用户的输入常常会有错误,错误主要分三种情况,多一个,少一个,写错一个。

海量数据查询问题:用户的输入常常会有错误,错误主要分三种情况,多一个,少一个,写错一个。假如我们在数据库中存储了所有正确的输入,利用什么技术,例如输入一个错误query,来得到所有正确的query。这个题目是hr提示我的,其实我也没有什么思路想到的是hash表对正确的数据存储的时候做如下处理:例如我们要存储abcdef,首先存储abcdef状

2012-10-19 09:44:20 1540

转载 【C/C++学习】之十五、内存管理

索引:1、内存分配简介2、内存分配常见错误3、new()/delete()函数的使用4、malloc()/free()函数的使用在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在

2012-10-19 09:15:30 2362

转载 从海量数据中找出中位数

题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存)。关于中位数:数据排序后,位置在最中间的数值。即将数据分成两部分,一部分大于该数值,一部分小于该数值。中位数的位置:当样本数为奇数时,中位数=(N+1)/2 ; 当样本数为偶数时,中位数为N/2与1+

2012-10-19 08:56:52 10096 1

转载 活动安排问题(贪心算法)

类似的问题是:选点问题和区间覆盖问题。活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合,是可以用贪心算法有效求解的很好例子。该问题要求高效地安排一系列争用某一公共资源的活动。贪心算法提供了一个简单、漂亮的方法使得尽可能多的活动能兼容地使用公共资源。    设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一

2012-10-19 08:02:43 9866

原创 N个鸡蛋分到M个篮子里

N个鸡蛋分到M个篮子里(N>M),不能有空篮子,对于任意不大于于N的数,保证有几个篮子的鸡蛋数和等于此数,编程实现输入N,M两个数,输出所有鸡蛋的方法全输出的话本质就是搜索+剪枝。(n,m,min)表示当前状态,按照篮子里蛋的数目从小到大搜索。搜到了第m个篮子,1..m个篮子面共放了n个蛋,当前的篮子放了min个蛋。下一个扩展(n+t,m+1,t),for t=min...n+1。

2012-10-19 07:14:34 2498

转载 整数序列是不是二叉查找树的后序遍历结果

题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:8/ \6 10/ \ / \5 7 9 11因此返回true。如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。分析:这是一道trilo

2012-10-19 06:05:16 2810

转载 为什么strcpy的返回值是char* ?

当我在笔试中面对这个题目的时候,毫不犹豫的写下这样的答案:如果strDest的长度小于strSrc,会删除strDest,然后new一块与strSrc相同大小的内存。由于我知道试题是出自林锐的《高质量C++编程指南》,所以回来后我查看了相关的资料,结果大失所望,以下是引自原文:【建议6-2-1】有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达,可以附加返回值。

2012-10-18 23:49:49 16958 1

转载 幸运数组/连续子数组被k整除

http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=13501350.幸运数组Time Limit: 2000 MS         Memory Limit: 65536 KTotal Submissions: 221 (61 users)         Accepted: 56 (44 users)[ My Solution]

2012-10-18 08:43:06 4103

转载 朋友圈

参看http://blog.csdn.net/jiyanfeng1/article/details/8083789假如已知有n个人和m对好友关系,如果两个人是直接或者间接有好友关系,则认为他们属于同一个朋友圈。写程序判断里面有多少朋友圈。例如:n = 5, m = 3  r = {(1,2), (2, 3), (4, 5)}  1 2 3 是一个朋友圈, 4 5 是一个朋友圈。

2012-10-18 08:20:22 4429

转载 并查集/朋友圈

高级数据结构设计--并查集及实现学习笔记(有趣篇)并查集的程序设计:为了解释并查集的原理,我将举一个更有趣的例子。     话说江湖上散落着各式各样的大侠,有上千个之多。他们没有什么正当职业,整天背着剑在外面走来走去,碰到和自己不是一路人的,就免不了要打一架。但大侠们有一个优点就是讲义气,绝对不打自己的朋友。而且他们信奉“朋友的朋友就是我的朋友”

2012-10-18 08:04:00 3486

转载 Optimal BST

Optimal BSTAssume:We have a list of n items: a1, a2, ..., anKey(ak) = akProbability of accessing item ak is known in advance and is P(ak)The list is ordered by keys, a1

2012-10-18 06:14:10 3511

原创 括号匹配(小中大括号序列)

括号序列由( )[ ]{ }组成,不合法的括号序列由( { ) },[ } { ],等等。编程实现一个函数,检查一个括号序列是否是合法的括号序列。解法:思路和“后缀表达式的求解”相似。我们借助栈,每读一个括号,如果是左括号,那么入栈,然后继续读下一个括号;如果是右括号,那么就要看看这个右括号和站定的括号是否匹配;如果匹配,那么弹出栈顶的括号,继续读下一个括号。当栈变空时,说明此括号序列是合

2012-10-18 02:49:00 4182

转载 Google面试题:找几百亿数据的中值

Google面试题:找几百亿数据的中值http://blog.csdn.net/jiyanfeng1/article/details/8088237有几百亿的整数,分布的存储到几百台通过网络连接的计算机上,你能否开发出一个算法和系统,找出这几百亿数据的中值?就是在一组排序好的数据中居于中间的数。显然,一台机器是装不下所有的数据,也尽量少用网络带宽。我的算法训练挺少的,只能自己谈些自

2012-10-18 02:42:44 6017 1

原创 100盏灯泡的亮灭

问题:有100盏灯泡,第一轮点亮所有电灯,第二轮每两盏灯熄灭一盏,即熄灭第2盏,第4盏,以此类推,第三轮改变编号为3的倍数的电灯,第3盏,第6盏,如果原来那盏灯是亮的,就熄灭它,如果原来是灭的,就点亮它,以此类推,直到第100轮。问第100结束后,还有多少盏灯泡是亮的?解答:由题意最如果最后某一盏灯是亮着的,那么它一定是被切换了奇数次(第0次的时候全部都关着)。

2012-10-18 01:57:20 6390 2

原创 输出所有的字符组合(可重复)

EASY已知字符串里的字符是互不相同的,现在任意组合,比如ab,则输出aa,ab,ba,bb,编程按照字典序输出所有的组合。本题可用递归的思想,设置一个变量表示已输出的个数,然后当个数达到字符串长度时,就输出。代码如下:#include //#include using namespace std;void perm(char* str, char array[],

2012-10-18 01:47:47 2829

原创 一个无重复面值的找零算法的思路与实现(二)

这篇博文与“一个无重复面值的找零算法的思路与实现(一)”是姊妹篇。解法是基于“找零钱递归实现”,代码和基本相同,唯一不同的地方是第26行代码。代码如下:#include #include using namespace std;//20块钱找零,零钱由1、2、5、10四种币值#define MAX_VALUE 17int array[] = {1,2,5,10,MAX_V

2012-10-18 01:13:59 700

转载 数组中三个只出现一次的数字

此文转自:http://zhedahht.blog.163.com/blog/static/25411174201283084246412/此问题的相关问题:数组中两个只出现一次的数字:http://blog.csdn.net/jiyanfeng1/article/details/8037807题目:一个数组中有三个数字a、b、c只出现一次,其他数字都出现了两次。请找出三个只出现一

2012-10-17 12:06:32 2809

原创 最大乘积子序列的值

给一个浮点数序列,取最大乘积子序列的值,例如 -2.5,4,0,3,0.5,8,-1,则取出的最大乘积子序列为3,0.5,8。解法一:用动态规划来做。    假设数组为a[],直接利用动归来求解,考虑到可能存在负数的情况,我们用Max[i]来表示以a[i]结尾的最大连续子序列的乘积值,用Min[i]表示以a[i]结尾的最小的连续子序列的乘积值,那么状态转移方程为:       Ma

2012-10-17 11:31:53 1288

转载 一个无重复面值的找零算法的思路与实现

本题的另外一个解法请看:一个无重复面值的找零算法的思路与实现(二)在论坛上看到有人问了一个类似的算法题:给出升序排列的N个数字,比如1, 2, 3, 7, 70找出无法被这组数字组成的最小正整数。(这组数字中每个数字最多使用一次)(1)简单描述你的算法和思路。(2)用C/C++实现(3)分析你的代码的时间复杂度和空间复杂度解题思路:这个问

2012-10-17 07:03:40 2334

转载 找零钱递归实现

无重复找零钱请看:http://blog.csdn.net/jiyanfeng1/article/details/8079530题目:现有1元、2元、5元、10元、20元面值不等的钞票,问需要20元钱有多少种找钱方案,打印所有的结果! 分析:此题如果没要求打印结果,只要求打印出一共有多少种方案,那么可以直接用动态规划,参考背包问题——“01背包”及“完全背包”装满背包的方案

2012-10-17 06:48:40 3524

转载 求正整数n所有可能的和式的组合

求正整数n所有可能的和式的组合(如;4=1+1+1+1、1+1+2、1+3、2+1+1、2+2) 首先说一下,群里面很多人在问这个东东怎么去打印,当然如果是只求组合个数的话,他就是一个完全背包的问题,如果要打印的话,那还真的费一番功夫。我们可以将这题想为一个找零钱问题,以前找零钱问题是,我们有1元、2元、5元、10元面值的纸币,现在我有20元钱,问有多少种找法。

2012-10-17 06:36:34 1666

原创 C++ 特性 面试

1. C++的特点有哪些?面向对象应该涉及到了,封装,继承,多态,重载,应该是基本功能,现在很多面向对象的语言都有这些功能了。 特点我觉得应该是泛型吧! 还有metaprogramming!

2012-10-17 04:49:07 1958

转载 不使用随机数的洗牌算法/Shuffle sort and other fallacies of randomization

Quick, how do you write code that shuffles a collection of objects? In the real world, it’s fairly easy to see how a deck of cards is shuffled – but how would you do that in code? Obviously, you would

2012-10-17 03:05:23 3317

转载 Find the top k sums of two sorted arrays

Given two arrays sorted in ascending order, we want to find the kth largest sum such that one element is picked from 1st array and the second element is picked from the 2nd array. I am looking for a

2012-10-16 13:49:00 3455

原创 不用if-else和比较运算符,得出两个数中较大的那个数

不用if-else和比较运算符,得出两个数中较大的那个数。EXAMPLEInput: 5, 10Output: 10代码: int getMax(int a, int b) { int c = a - b; int k = (c >> 31) & 0x1; int max = a - k * c; return max; }

2012-10-16 11:15:10 12430 1

原创 [LeetCode] 把一个单词变形成为另一个单词,每次变形只改变一个单词 word ladder

给定两个相等长度的单词,写一个算法,把一个单词变形成为另一个单词,每次变形只改变一个单词。此过程中得到的每个单词必须是字典里存在的单词。EXAMPLEInput: DAMP, LIKEOutput: DAMP -> LAMP -> LIMP -> LIME -> LIKE思路:这其实就是广度优先遍历。遍历过程中,我们需要记录路径,在找到目标单词后,根据记录的路径打印出变形过

2012-10-16 10:34:32 3855

原创 C++多维数组参数

如何正确的将多维数组作为参数传递给函数。void ThisIsIllegal(int arr[][]); // Wrong!void ThisIsAlsoIllegal(int arr[10][]); // Also wrongvoid ThisIsIllegal(int arr[][10]); // OkayThe problem is that when passing multidi

2012-10-16 10:02:07 604

转载 [LeetCode] Find max subsquare whose border values are all 1

Imagine you have a square matrix, where each cell is filled with either black or white. Design an algorithm to find the maximum subsquare such that all four borders are filled with black pixels.

2012-10-16 09:54:06 2157

原创 中缀表达式转换成后缀表达式/计算后缀表达式

一、后缀表达式介绍后缀表达式的特点就是计算机运算非常方便,需要用到栈;计算机处理过程只需要顺序读入,如果遇到数字,则放入栈中,如果是运算符,则将两个栈中数字取出进行运算;比如1+2的后缀表达式为1 2 +;而栈可以把一般的中缀表达式变成后缀表达式,并且计算后缀表达式得出结果,因此此应用在计算器中非常常用。二、中缀表达式转换成后缀表达式此方法需要遵循几个规则:(1)如果读入操作数,则

2012-10-16 07:54:19 693

原创 找出所有和为0的四元组4-Sum Problem

相关问题:Finding Longest Arithmetic Progressions给定一个长度是n的整数数组,是否存在4个元素a,b,c,d,使得a+b+c+d=target,target为一个给定的整数?INPUT:  = {1, 0, -1, 0, -2, 2}, and target = 0OUTPUT: (-1, 0, 0, 1), (-2, -1, 1, 2) and

2012-10-16 01:17:43 1753

原创 [LeetCode] 最大容器问题 Container with Most Water

给定一个非负整数数组a1,a2,a3,...,an,每个元素代表一个坐标(1,a1),...,(i,ai),...,(n,an)。从(i,0)到(i,ai)画条直线。找出两条直线,使得这两条直线和x轴形成的容器可以装最多的水。思路:其实,本问题就是要求找到两个下标i和j,使(i-j)*min(ai,aj)最大。我们注意到,如果aiaj,i算法从i=1, j=n开始扫描,最后当i=j时就

2012-10-14 23:55:31 4226

原创 不用/,*,mod乘、除、取模运算的除法

不用乘、除、取模运算,求两个整数的商。思路一:可以用一个循环来做。思路二:a/b=exp( log(a/b) )=exp( log(a) - log(b) )。The tricky part of this question does not lie on the algorithm though. It has something to do with overflows.

2012-10-14 11:03:17 5634

翻译 平衡括号问题

相关问题1:http://blog.csdn.net/jiyanfeng1/article/details/8036007(高矮人站队问题)相关问题2:https://blog.csdn.net/jiyanfeng1/article/details/8619975(最长合法括号)括号平衡问题,例如 ((()()))是平衡的,但是)()是不平衡的。问题,一共有n个左括号和n个右括号,请...

2012-10-14 07:28:54 4161

原创 [LeetCode] 格雷码(Gray Code)

格雷码是一种数字排序系统,其中的所有相邻整数在它们的二进制数字表示中只有一个数字不同。现要求打印出二进制比特数是n的所有格雷码。例如,n=2,所有的格雷码是0,1,3,2(对应二进制表示是00,01,11,10)。思路一:如果仔细观察格雷码的规律,可以发现,对于n比特的格雷码,前2^(n-1)个格雷码的前n-1比特和后2^(n-1)个格雷码的前n-1比特是对称的,前2^(n-1)个格雷码的

2012-10-14 06:38:13 3563

原创 抵达终点的最小跳数

给定一个非负整数数组,最初你被放在数组的第一个元素上,数组的每个元素代表你能跳的最大的步数。你的目标是用最少的跳数抵达最后一个元素。例如,给定A = [2,3,1,1,4],抵达终点的最小跳数是2(下标0->下标1->下标4)。思路一:table[i]表示从数组下标i的位置抵达最后一个元素的最少跳数。对于在下标i用1跳抵达的地方(最远跳arr[i],最近跳1跳),可以写出状态转

2012-10-14 05:21:28 2321

原创 [LeetCode] 01矩阵中最大矩形 Maximal Rectangle

在一个M * N的矩阵中,所有的元素只有0和1, 找出只包含1的最大矩形。例如:图中是一个4 × 6的矩形,画出红色的是我们要找到的区域。仔细观察发现:因为我们要找的是矩形,所以它一定是以 某个行元素开始的,如果枚举行的时候,我们会发现:对于第一行: 对于第二行:第三行:第四行: 这样的话,

2012-10-14 00:10:00 20271 1

翻译 直方图最大矩形问题(Largest Rectangle in Histogram)

有n个非负整数,代表直方图中每个bar的高度,每个bar的宽度是1。请找出直方图中最大矩形的面积。上面的直方图可以表示成一个数组{2,1,5,6,2,3}。最大矩形面积是10.思路:The point of this algorithm is to maintain a stack where higher element is always greater or

2012-10-13 13:52:20 8413 1

Monte carlo模拟的Mathematica代码

本文件是用Mathematica代码编写的Monte carlo模拟。 包含均匀分布,指数分布,以及均匀分布在圆和球面上的点。

2010-04-10

网格搜索法--求公切线算法

网格搜索法--求公切线算法。Mathematica程序。

2009-07-08

北邮通信电子电路自测题

这是本人在北邮学习期间,搜集的通信电子电路自测题。老师给的。很有价值。

2009-07-08

空空如也

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

TA关注的人

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