算法虽然不是特别简单,但没有你想象中的那么难。 "Sort Array By Parity" easy AC 17ms. 按照《算法导论》排序一章的一些概念,第二种可以称为是原址的(in place)。 First Try: 用了另一个数组来保存结果,如果是奇数进行swap操作,同时在else中还要 ...
分类:
编程语言 时间:
2019-02-25 00:48:48
阅读次数:
238
算法就是把输入转换成输出的计算步骤的一个序列. 问题实例由计算该问题解所必需的(满足问题陈述中强加的各种约束的)输入组成. 若对每个输入实例,算法都以正确的输出停机,则称该算法是正确的. 许多有趣的算法问题所共有的两个特征: 1.存在许多候选解,但绝大多数候选解都没有解决手头的问题.寻找一个真正的解 ...
分类:
编程语言 时间:
2019-02-21 16:17:10
阅读次数:
195
1.分治思想快速排序 https://www.cnblogs.com/feichangnice/p/5334195.html 算法导论上的快速排序采用分治算法,步骤如下: 1.选取一个数字作为基准,可选取末位数字 2.将数列第一位开始,依次与此数字比较,如果小于此数,将小数交换到左边,最后达到小于基 ...
分类:
编程语言 时间:
2019-02-11 12:23:07
阅读次数:
270
题目链接:MST Unification 题意:给定一张连通的无向带权图。存在给边权加一的操作,求最少操作数,使得最小生成树唯一。 题解:最小生成树在算法导论中有这个性质: 把一个连通无向图的生成树边按权值递增排序,称排好序的边权列表为有序边权列表,则任意两棵最小生成树的有序边权列表是相同的。(算法 ...
分类:
其他好文 时间:
2019-01-25 21:01:55
阅读次数:
389
第1章 算法面试到底是什么鬼?一提起算法面试,很多同学就会心有余悸。可其实,大多数企业的算法面试,并没有那么可怕。并不是一定要啃完整本《算法导论》,才能玩儿转算法面试;也并不是只有ACM参赛选手,才能笑傲算法面试。恰恰相反,大多数算法面试关注的算法思维,其实很基础。在这一章,和大家聊一聊,算法面试, ...
分类:
编程语言 时间:
2019-01-23 00:21:43
阅读次数:
233
上学期转专业就没怎么学好数据结构,这学期正好看了算法导论第四章也有讲动态规划和,正好前不久做那个查找最长不重样字符串的题学了一个最短字符串匹配的动态图框法。用动态规划写了一下,分治还没写出来。 不止一次在if(x=1)这种问题上犯错了,要注意。有数组里只有一个数,和全是负数的情况要处理。 ...
分类:
其他好文 时间:
2018-12-24 02:35:39
阅读次数:
80
先从图的表示开始吧。 图是这个分类下几乎所有文章的基础。《算法导论(第三版)》第22章对图进行了介绍,这里就简单提一下,毕竟也不难(连我这个高中生都理解了)。 分割线 这就是一张普通的图。 我们的目标是把它在程序中表示出来: 表示图的方法主要有两种,一种方法是用链表(原谅我拙劣的作图技术):在C++ ...
分类:
其他好文 时间:
2018-12-01 20:19:45
阅读次数:
190
面试算法爱好者书籍/OJ推荐这个书单也基本适用于准备面试。一、教科书基本上一般的算法课本介绍的范围都不会超出算法导论和算法引论的范围。读完这两本书,其它的算法课本大致翻翻也就知道是什么货色了。1. 算法导论这本书的内容用三个字来总结。就是伟光正。基本上囊括了经常使用算法的方方面面,证明巨细无遗,十分 ...
分类:
编程语言 时间:
2018-11-27 22:05:08
阅读次数:
192
看了一下题目的意思,求逆序数,求出逆序数最大的行号。 求逆序数是经典问题,想起当年刚学编程时,算法导论里就有这个习题,如何将merge sort修改为可以计算逆序数的版本,于是写了一下,得到了以下一份答案。 1 #include <iostream> 2 #include <algorithm> 3 ...
分类:
其他好文 时间:
2018-11-11 16:54:00
阅读次数:
183