算法
wdkirchhoff
这个作者很懒,什么都没留下…
展开
-
从顺序表中删除所有元素值为x的元素,要求空间复杂度为O(1)
解法一:首先确定顺序表L中的第一个值为x的元素位置i,ranhouyici原创 2014-10-05 08:03:07 · 19376 阅读 · 3 评论 -
HDU 1425 sort (排序)
sortTime Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 28997 Accepted Submission(s): 8796Problem Description给你n个整数,请按从大到小的顺序输出其中原创 2014-12-11 16:34:02 · 1443 阅读 · 0 评论 -
HDU 1425 sort (hash)
sortTime Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 29001 Accepted Submission(s): 8799Problem Description给你n个整数,请按从大到小的顺序输出其中原创 2014-12-11 17:00:41 · 889 阅读 · 0 评论 -
HDU 4911 Inversion (归并排序求逆序对)
InversionTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1898 Accepted Submission(s): 743Problem Descriptionbobo has a sequ原创 2014-12-11 12:00:05 · 1107 阅读 · 0 评论 -
HDU 2136 Largest prime factor (筛选法求素数)
Largest prime factorTime Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7297 Accepted Submission(s): 2589Problem DescriptionEvery原创 2014-12-10 12:05:58 · 827 阅读 · 0 评论 -
HDU 1157 Who's in the Middle (快速排序 or 任意排序)
Who's in the MiddleTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9903 Accepted Submission(s): 4736Problem DescriptionFJ is原创 2014-12-11 13:52:52 · 2222 阅读 · 0 评论 -
华为机试—“十七进制”转“十进制”
题目:“十七进制”转“十进制”实现“十七进制”转“十进制”算法:输入一个十七进制数字的字符串(字母一律大写),输出这个数值对应的十进制结果,达到进制转换目的,范围:0-0xFFFFFFFF。#include#includevoid solve(char *s){ int len=strlen(s); int i=0; int a原创 2014-12-27 17:47:55 · 2769 阅读 · 0 评论 -
九度OJ 1040 Prime Number (筛素数,试除法)
题目描述:Output the k-th prime number.输入:k≤10000输出:The k-th prime number.样例输入:37样例输出:517这道题,好久以前使用试除法做的,原理是维护一个素数表,根据输入的num,确定是否之前算过,算过了,就直接输出,没算过,就现在开始算,并且把中原创 2014-12-10 15:37:47 · 3684 阅读 · 0 评论 -
HDU 3785 寻找大富翁 (排序)
寻找大富翁Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4132 Accepted Submission(s): 1698Problem Description浙江桐乡乌镇共有n个人,请找出该镇上的前原创 2014-12-12 08:41:30 · 1249 阅读 · 0 评论 -
HDU 1280 前m大的数 (排序)
前m大的数Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11508 Accepted Submission(s): 3966Problem Description还记得Gardon给小希布置的那个作业原创 2014-12-11 17:51:21 · 987 阅读 · 0 评论 -
位操作 注意事项
1.位操作符的运算优先级比较低,因此尽量使用括号来确保运算顺序,否则很可能会得到莫明其妙的结果。比如要得到像1,3,5,9这些2^i+1的数字。写成int a = 1 2.奇偶判断for (i = 0; i < 100; ++i)//输出0~100内所有奇数 if (i & 1) printf("%d ", i);putchar('\n');3.不用第三方变量交换两数原创 2014-12-12 11:51:54 · 677 阅读 · 0 评论 -
O(1) 空间复杂度逆序栈和排序栈
两种操作都是递归实现,汉诺塔思想。#include<iostream>#include<stack>using namespace std;void reverse(stack<int> &s)//逆序栈{ if(s.size()==0) return ; int a=s.top(); s.pop(); if(s.size()==0) {原创 2015-03-29 20:55:55 · 4486 阅读 · 1 评论 -
阿里巴巴 2015 实习笔试题 分布式系统中的RPC请求经常出现乱序的情况 写一个算法来将一个乱序的序列保序输出
分布式系统中的RPC请求经常出现乱序的情况。 写一个算法来将一个乱序的序列保序输出。例如,假设起始序号是1,对于(1, 2, 5, 8, 10, 4, 3, 6, 9, 7)这个序列,输出是: 1 2 3, 4, 5 6 7, 8, 9, 10上述例子中,3到来的时候会发现4,5已经在了。因此将已经满足顺序的整个序列(3, 4, 5)输出为一行。要求: 1. 写一个高效的算法完成上述功原创 2015-04-14 09:21:11 · 3660 阅读 · 1 评论 -
LeetCode Search in Rotated Sorted Array
Search in Rotated Sorted Array Total Accepted: 50423 Total Submissions: 173779 My Submissions Question Solution Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2原创 2015-04-15 21:10:34 · 827 阅读 · 0 评论 -
LeetCode Find Minimum in Rotated Sorted Array
Find Minimum in Rotated Sorted Array Total Accepted: 38126 Total Submissions: 115306 My Submissions Question Solution Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e.,原创 2015-04-15 21:29:23 · 767 阅读 · 0 评论 -
LeetCode Find Minimum in Rotated Sorted Array II
Find Minimum in Rotated Sorted Array II Total Accepted: 23090 Total Submissions: 73108 My Submissions Question Solution Follow up for “Find Minimum in Rotated Sorted Array”: What if duplicates are a原创 2015-04-15 21:34:38 · 761 阅读 · 0 评论 -
找到轮转后的有序数组中第K小的数
我们可以通过二分查找法,在log(n)的时间内找到最小数的在数组中的位置,然后通过偏移来快速定位任意第K个数。 此处还是假设数组中没有相同的数,原排列顺序是递增排列。 在轮转后的有序数组中查找最小数的算法如下:int findIndexOfMin(int num[],int n) { int l = 0; int r = n-1; while(l原创 2015-04-15 22:35:20 · 1224 阅读 · 0 评论 -
Dominant Resource Fairness: Fair Allocation of Multiple Resource Types
论文的大致内容: 在一个拥有多资源系统中往往需要面对资源平均分配的问题,每个用户对每个资源都有不同的需求。针对这个问题,伯克利几位大牛Ali Ghodsi, Matei Zaharia, Benjamin Hindman, Andy Konwinski, Scott Shenker, Ion Stoica发表了一篇文章,提出Dominant Resoruce Fairness(DRF)算法,一个多原创 2017-08-14 19:40:40 · 3372 阅读 · 1 评论 -
HDU 1894 String Compare (排序)
String CompareTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 3124 Accepted Submission(s): 740Problem DescriptionMaybe there原创 2014-12-11 15:25:51 · 979 阅读 · 0 评论 -
九度OJ 1207 质因数的个数 (筛素数,勉强AC)
1 秒内存限制:32 兆特殊判题:否提交:4466解决:1375题目描述:求正整数N(N>1)的质因数的个数。相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。输入:可能有多组测试数据,每组测试数据的输入是一个正整数N,(1输出:对于每组数据,输出N的质因数的个数。样例原创 2014-12-10 16:26:10 · 2354 阅读 · 1 评论 -
n个球找一个次品(分治,递归)
ch3Table of Contents1 n个球找一个次品1 n个球找一个次品问题描述:给定n个球,其中1个球为次品。次品从外表上看与正常球一样,但重量有区别。它可能比正常球重,也可能比正常球轻。现在给你一个天平,我们的问题是,需要称几次才能将次品甄别出来?这个问题的解答思路十分简单:就是将次品所在的范围不断地缩小,直到只有一个球为止。例如,先将所原创 2014-09-28 13:11:23 · 3998 阅读 · 3 评论 -
九度OJ 1043 蔡勒公式
如何计算某一天是星期几?—— 蔡勒(Zeller)公式 历史上的某一天是星期几?未来的某一天是星期几?关于这个问题,有很多计算公式(两个通用计算公式和一些分段计算公式),其中最著名的是蔡勒(Zeller)公式。即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1公式中的符号含义如下,w:星期;c:世纪-1;y:年(两位数);m:月(m大于等于3,小于等于14,即原创 2014-10-19 21:09:38 · 2061 阅读 · 1 评论 -
从顺序表L中删除元素x到y之间的所有元素(x<=y)
跟上篇文章所写的代码类似原创 2014-10-08 21:03:15 · 13836 阅读 · 1 评论 -
快排的交换算法
设有一个顺序表L,其元素类型为整型类型,s原创 2014-10-08 21:20:28 · 758 阅读 · 0 评论 -
顺序表删除重复元素,并使剩余元素间的相对次序保持不变
设计一个算法从顺序表中删除重复元素,并使sheng'yu原创 2014-10-08 21:58:27 · 8298 阅读 · 5 评论 -
顺序表合并算法一、二、三
用顺序表A和B表示的两个线性表,元素的个数分别为m和n,若表中数据都是you'xiao原创 2014-10-09 09:43:32 · 1861 阅读 · 0 评论 -
头指针与头结点的区别
头指针:头指针是指链表原创 2014-10-09 11:50:40 · 10282 阅读 · 1 评论 -
Adler-32校验算法
Adler-32校验算法Adler-32是Mark Adler发明的校验和算法,和32位CRC校验算法一样,都是保护数据防止意外更改的算法,但是这个算法较容易被伪造,所以是不安全的保护措施。但是比CRC好点的是,它计算的很快。这个算法那是从Fletcher校验和算法中修改过来的,原始的算法形式略快,但是可依赖性并不高。Adler-32的一种滚动哈希版本被用在了rsync工具中Adler翻译 2014-10-27 20:57:44 · 10379 阅读 · 1 评论 -
BFS、双向BFS和A*
BFS、双向BFS和A*Table of Contents1. BFS2. 双向BFS3. A*算法光说不练是没用的,我们从广为人知的POJ 2243这道题谈起:题目大意:给定一个起点和一个终点,按骑士的走法(走日字),从起点到终点的最少移动多少次设A为寻路起点,B为目标终点。1 BFSBFS其实是退化的A*算法,因为他没有启发函数做指引原创 2014-11-14 17:49:34 · 26298 阅读 · 8 评论 -
求n的算术平方根(计算平方根的巴比伦的方法)
求n的平方根Table of Contents1 公式2 程序代码1 公式正数n的平方根可以通过计算一系列近似值来获得,每个近似值都比前一个更加接近准确值,第一个近似值是1,接下来的近似值则通过下面的公式来获得:ai+1=(ai+n/aai)/22 程序代码#include#includeint main(int argc原创 2014-11-02 00:51:09 · 5576 阅读 · 0 评论 -
USACO 1.3 Barn Repair (动态规划再写次)
描述在一个夜黑风高,下着暴风雨的夜晚,farmer John的牛棚的屋顶、门被吹飞了。 好在许多牛正在度假,所以牛棚没有住满。 牛棚一个紧挨着另一个被排成一行,牛就住在里面过夜。 有些牛棚里有牛,有些没有。 所有的牛棚有相同的宽度。 自门遗失以后,farmer John必须尽快在牛棚之前竖立起新的木板。 他的新木材供应商将会供应他任何他想要的长度,但是吝啬的供应商只能提供有限数目的木板。原创 2014-11-26 11:35:15 · 1491 阅读 · 0 评论 -
冒泡排序,选择排序,插入排序的区别
#includeint swap(int *a,int *b){ int t=*a; *a=*b; *b=t;}/* 冒泡排序的原理:每次在无序队列里将相邻两个数依次进行比较,将小数调换到前面, 逐次比较,直至将最大的数移到最后。最将剩下的N-1个数继续比较,将次大数移至倒数第二位。 依此规律,直至比较结束。 冒泡排序的代码如下: */void原创 2014-12-07 14:02:56 · 14168 阅读 · 7 评论 -
华为机试—多个数的最大公约数
题目:求最大公约数输入一组正整数(数量小于20),输出其最大公约数。输入:121 33 44 11 1111输出:11基本思路:从第一个数开始,和第二个数比较找它两的最大公约数,然后找出的最大公约数和第三个数比较,依次类推#include#includeint a[30];int gcd(int a,int b){ re原创 2014-12-23 11:30:10 · 1222 阅读 · 1 评论 -
HDU 1394 Minimum Inversion Number (归并排序求逆序对)
Minimum Inversion NumberTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11840 Accepted Submission(s): 7258Problem Description原创 2014-12-09 11:34:20 · 986 阅读 · 1 评论 -
POJ 2299 Ultra-QuickSort (树状数组)
前段时间用归并排序写了这题,发现树状数组也能解这题,就去学习了一下首先先来看一个序列 6 1 2 7 3 4 8 5,此序列的逆序数为5+3+1=9。冒泡法可以直接枚举出逆序数,但是时间复杂度太高O(n^2)。冒泡排序的原理是枚举每一个数组,然后找出这个数后面有多少个数是小于这个数的,小于它逆序数+1。仔细想一下,如果我们不用枚举这个数后面的所有数,而是直接得到小于这个数的个数,那么效率将原创 2014-12-09 22:16:54 · 2712 阅读 · 0 评论 -
HDU 1394 Minimum Inversion Number (树状数组)
依旧是再练习下树状数组的使用:题目大意: 给出N个数,这些数可以把后面的删掉然后放到最前面形成新的序列 可得到的N种情况,求出这N种情况哪种的逆序数最小解题思路: 先求出第一个序列的逆序数,然后用很巧妙的办法求下一个序列的逆序数,直到全部求出 序列 4 5 2 1 3 6 ,此序列的逆序数为原创 2014-12-09 23:31:23 · 734 阅读 · 0 评论 -
HDU 2710 Max Factor (筛选求素数)
Max FactorTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3995 Accepted Submission(s): 1301Problem DescriptionTo improve the原创 2014-12-10 14:41:09 · 988 阅读 · 0 评论 -
(转)max-min fairness 最大最小公平算法
我们经常面临给一组用户划分稀有资源的问题,他们都享有等价的权利来获取资源,但是其中一些用户实际上只需要比其他用户少的资源.那么我们如何来分配资源呢?一种在实际中广泛使用的分享技术称作“最大最小公平分享”.直观上,公平分享分配给每个用户想要的可以满足的最小需求,然后将没有使用的资源均匀的分配给需要‘大资源’的用户。最大最小公平分配算法的形式化定义如下:资源按照需求递增的顺序进行分配 不存在用户得到的转载 2017-08-15 11:06:27 · 1082 阅读 · 0 评论