算法
shen_bb
这个作者很懒,什么都没留下…
展开
-
不使用 +-×÷ 运算符来实现 加减乘除 四项运算
本文摘自: http://www.cppblog.com/qingbizhu/archive/2012/03/30/168148.html最近,在看《剑指Offer——名企面试官精讲典型编程题》一书,当看到“面试题47:不用加减乘除做加法”时,经过一分钟左右思考后,得出了思路,跟书上一对照,基本一致,呵呵O(∩_∩)O~。于是,随即又开始思考:加法是实现了,那么减法、乘法还有除转载 2013-07-21 10:11:55 · 672 阅读 · 0 评论 -
求一个非负数的平方根--sqrt实现
学过C或任何一种包含标准库语言的我们,求解一个非负数的平方根自然来的容易,随便调用下类似sqrt的函数就一切ok了!比较喜欢探究的同学也会好奇不用sqrt怎么实现求一个数的平方根,或者说sqrt是如何实现的,这种题目也时常会出现在一些公司的面试中。 本人虽然以前也好奇过,但从未尝试去查询资料探究一番,今有幸看到一公司的面试题提到,遂总结之以加深印象。1、最笨也最易想到的或许就是暴原创 2013-10-10 19:46:05 · 3104 阅读 · 0 评论 -
题目1504:把数组排成最小的数
题目描述:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。输入: 输入可能包含多个测试样例。对于每个测试案例,输入的第一行为一个整数m (1输入的第二行包括m个正整数,其中每个正整数不超过10000000。输出: 对应每个测试案例,原创 2013-10-30 13:30:23 · 558 阅读 · 0 评论 -
最长上升子序列&最大上升子序列和
最长上升子序列问题即是求一个给定数组中,严格递增的最长子序列的长度,如序列1,2,2,4,3。其最长上升子序列为1,2,3or1,2,4.最长子序列的长度即是3。最大上升子序列和问题即是求一个给定数组中,严格递增的子序列中和最大的序列的和(显然,最长子序列未必和是最大的)。如序列100,1,2,3,其最长上升子序列为1,2,3,而最大上升子序列和为100。 由于DP在求解问题最优解原创 2013-11-21 12:43:48 · 2015 阅读 · 0 评论 -
一个正整数约数的个数
关于这个问题最容易想到的就是求出其个约数并对其进行一一计数了。这里附上稍微优化的代码,不再赘述。#include#includeint main(){ int n,num,i,cnt; double tmp; while(~scanf("%d",&n)&&n!=0) { while(n--) { sc原创 2013-11-25 14:55:30 · 2174 阅读 · 0 评论 -
最长回文子串
最长回文子串是最初我在网易笔试的时候遇见的,当时天真的把原字符串S倒转过来成为S‘,以为这样就将问题转化成为了求S和S’的最长公共子串的问题,而这个问题是典型的DP问题,我也在前面的文章中介绍了3中解决这个问题的方法。但是非常可惜,后来才知道这个算法是不完善的。那么到底为什么呢?听我慢慢道来。S=“c a b a” 那么 S' = “a b a c”, 这样的情况下 S和 S‘的最长公共子转载 2014-08-11 10:15:47 · 393 阅读 · 0 评论