
算法
文章平均质量分 60
weshjiness
这个作者很懒,什么都没留下…
展开
-
快速排序最好,最坏,平均复杂度分析
转自http://book.51cto.com/art/201108/287089.htm 很好的一篇详细数学分析快排复杂度的文章~我们来分析一下快速排序法的性能。快速排序的时间性能取决于快速排序递归的深度,可以用递归树来描述递归算法的执行情况。如图9‐9‐7所示,它是{50,10,90,30, 70,40,80,60,20}在快速排序过程中的递归过程。由于我们的第一个关键字是50,正转载 2013-03-11 19:25:41 · 125138 阅读 · 14 评论 -
[leetcode]141 Linked List Cycle
题目大意:链表判断是否有环分析:设置两个指针A,B,起始位置在头节点,A每次走一步,B每次走两步,如果A,B值有相等的时候,既有环,需要注意一下边界条件处理。原创 2015-02-04 13:59:05 · 401 阅读 · 0 评论 -
[leetcode]136 Single Number
题目大意:一个数组,里面除了一个数之外,其他所有数都是出现两次,找出那个特殊的数。分析:题目有要求,复杂度是o(n),而且不能再用额外的空间,可以利用异或,从第一个数一直异或到最后一个,结果就是那个特殊的数。原创 2015-02-02 13:32:58 · 386 阅读 · 0 评论 -
[leetcode]83 Remove Duplicates from Sorted List
题目大意:从有序链表中删除重复的元素,删除头指针。Given a sorted linked list, delete all duplicates such that each element appear only once.For example,Given 1->1->2, return 1->2.Given 1->1->2->3->3, return 1->2原创 2015-02-04 14:38:04 · 381 阅读 · 0 评论 -
codeforces 339C
题目链接:http://codeforces.com/problemset/problem/339/C题目大意:有不同质量的砝码无限多个,现在只让你在天平两边放入m个,要求1.每次在天平放一个,一次左边,下一次右边2.相邻两次质量必须不同3.放入砝码后,保证放入的这边总重严格大于另外一边。题目求解:简单的dfs即可~#includeusing namespace st原创 2013-08-29 22:51:27 · 1402 阅读 · 0 评论 -
hdu oj 1010 dfs+剪枝
这道题,刷了m次终于AC了。这道题应注意1.奇偶剪枝2.其他常见情况剪枝3.一定注意题干条件,一定是第T秒时到D,不能早于或者晚于T其它没什么的了。。。。代码附上。#include#include#include#includeconst int row[4] = {-1,1,0,0};const int col[4] = {0,0,-1,1};int df原创 2013-01-17 21:55:38 · 505 阅读 · 0 评论 -
poj 1789 prim
这题是prim的水题。。。注意:1.读懂题,读了好半天,明白是啥意思2.注意数据范围,map[2001][2001]必须放在堆里面。。。否则RUNTIME error代码:#include#include#include#define MAX 8#define MAX_SIZE_OF_VEXS 2001using namespace std;typedef st原创 2013-01-23 19:07:17 · 448 阅读 · 0 评论 -
poj 1062 dijisktra+枚举
这道题题目理解不难,可以转化为求最短路径。最开始的话,我直接就dijisktra,然后对于每条可以到达酋长的路径检查是否满足等级限制,然后选最小的但是WA,原因是如果某条路径等级出现大于M的情况,那么这条路径先前的某些点需要退回去修改被改过的节点值,也就是得用dfs写。后来搜了一下网上的解法,竟然用枚举!!!枚举出等级差小于M区间,对满足区间的点进行dijisktra,然后取最小,我开原创 2013-02-07 13:23:47 · 1031 阅读 · 0 评论 -
Codeforces Round #168 (Div. 2) B Convex Shape
给你一个n×m格子,判断任意两个黑格子之间是否有最多只转一次弯的路径我的方法也不是很好,遍历所有情况,好在本题数据量不是很大#include#include#includeint fun(char map[][51],int i,int j,int ii,int jj){ //判断从(i,j)到(ii,jj)是否有一条全为黑色格子的路径 //分为同行(列)和非同行(原创 2013-02-24 21:23:50 · 764 阅读 · 0 评论 -
[leetcode]82 Remove Duplicates from Sorted List II
题目大意:Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.For example,Given 1->2->3->3->4->4->5, return 1->2->5.原创 2015-02-06 14:42:02 · 472 阅读 · 0 评论