算法
文章平均质量分 60
justforfun099
这个作者很懒,什么都没留下…
展开
-
二进制中1的个数
题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。输入:输入可能包含多个测试样例。对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。。n保证是int范围内的一个整数。输出:对应每个测试案例,输出一个整数,代表输入的那个数中1的个数。样例输原创 2015-01-29 18:38:22 · 383 阅读 · 0 评论 -
位运算求平均数
下面代码: #include #include int f(int x,int y){ return (x&y) + ((x^y)>>1);}int main(){ printf("%d\n",f(729,271)); return 0;}这道题如果用本方法来求解,就都转化成二进制然后按位与。但这样的做法显然不是面试官所期待的,仔细观察就会发现,原创 2015-01-23 16:50:24 · 500 阅读 · 1 评论 -
二进制中1的个数问题
问题描述:任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4。这也是一道比较经典的面试题目了。常规法:其实就是最简单的方法,有点程序基础的人都能想得到,那就是移位+计数,很简单,不多说了,直接上代码,这种方法的运算次数与输入n最高位1的位置有关,最多循环32次。int BitCount(u原创 2016-02-23 20:00:45 · 774 阅读 · 0 评论 -
网易互娱2017实习生招聘在线笔试第一场-3划线
时间限制:10000ms单点时限:1000ms内存限制:256MB描述小王最近在开发一种新的游戏引擎,但是最近遇到了性能瓶颈。于是他打算从最基本的画线功能开始分析优化。画线其实就是调用一次drawline命令,根据给出的两端坐标,在屏幕画出对应的线段。但是小王发现,很多的drawline其实可以合并在一起,譬如下图中的线段(2,3)-(4,5)和线段(3,4原创 2016-03-19 18:52:06 · 2190 阅读 · 2 评论 -
约瑟夫环
约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后结果即为原问题的解。 算法原理:约瑟夫环运作如下:1、一群人围在一起坐成环状(如:N原创 2015-10-10 19:30:26 · 528 阅读 · 0 评论 -
利用已知函数判断字符串是否为另一字符串的子串
题目假设你有一个isSubstring函数,可以检测一个字符串是否是另一个字符串的子串。 给出字符串s1和s2,只使用一次isSubstring就能判断s2是否是s1的旋转字符串, 请写出代码。旋转字符串:”waterbottle”是”erbottlewat”的旋转字符串。解答题目说我们使用一次isSubstring函数就可以判断s2是否是s1的旋转字符串, 如果从原始字符原创 2015-03-06 17:45:27 · 1023 阅读 · 0 评论 -
qsort 常用方法总结
七种qsort排序方法 一、对int类型数组排序 int num[100]; Sample: int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(num,100,sizeof(num[0]),cmp); 二、对char类型数组排序(同int类型)原创 2015-01-22 12:13:35 · 350 阅读 · 0 评论 -
翻转句子中单词顺序
题目:输入一个英文句子,番句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。解决方法:处理方法是首先将整个句子翻转,然后再将其中的每个单词翻转。#include #include //the string to原创 2015-02-01 18:01:31 · 395 阅读 · 0 评论 -
求子数组最大和问题
题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。#include int find_max_sum(int ar原创 2015-02-01 14:38:52 · 463 阅读 · 0 评论 -
100的阶乘末尾有多少个0的问题
前一段时间看到一个往年程序竞赛的题解, 有一个题目说的是求 100 的阶乘末尾有多少个 0. 题解中给出的讲解提到, 一个数 n 的阶乘末尾有多少个 0 取决于从 1 到 n 的各个数的因子中 2 和 5 的个数, 而 2 的个数是远远多余 5 的个数的, 因此求出 5 的个数即可. 题解中给出的求解因子 5 的个数的方法是用 n 不断除以 5, 直到结果为 0, 然后把中间得到的结果累加.原创 2015-01-30 11:11:19 · 1957 阅读 · 0 评论 -
打印1到最大的N位数
题目描述:给定一个数字N,打印从1到最大的N位数。输入:每个输入文件仅包含一组测试样例。对于每个测试案例,输入一个数字N(1输出:对应每个测试案例,依次打印从1到最大的N位数。样例输入:1样例输出:123456789#include #include原创 2015-01-29 19:31:33 · 411 阅读 · 0 评论 -
算法题-大数相乘问题
题目:编写两个任意位数的大数相乘的程序,给出计算结果。逐位相乘处理进位法乘积是逐位相乘,也就是aibj,结果加入到积C的第i+j位,最后处理进位即可,例如:A =17 = 1*10 + 7 = (7,1)最后是十进制的幂表示法,幂次是从低位到高位,以下同。B=25 = 2*10 + 5 = (5,2);C = A * B = (7 * 5, 1 * 5 + 2 *原创 2017-09-02 10:33:01 · 843 阅读 · 0 评论