摘要:
问题 A: 变位词 题目描述 请大家在做oj题之前,仔细阅读关于抄袭的说明http://www.bigoh.net/JudgeOnline/. 变位词是指由相同的字母组成的单词,如eat、tea是变位词。本次问题给出一串单词,你需要找到所有的变位词。 请大家在做oj题之前,仔细阅读关于抄袭的说明ht 阅读全文
摘要:
问题 A: 动态中位数问题 题目描述 输入一组整数a1, a2, …, an ,每输入一个整数,输出到此时为止的中位数。 中位数定义:如果数串的大小是偶数 2j,中位数是从小到大排列的第 j 个数;如果数串的大小是奇数 2j+1,中位数是从小到大排列的第 j+1 个数。 输入一组整数a1, a2, 阅读全文
摘要:
今天做了leetcode67题,两个2进制数相加,回想了一下其实有很多这种类型的题,比如leetcode2两数相加。 在做这种题时我自己的思路就是先循环遍历一个短的,然后跳出循环,判断是哪个结束,再接着合并。比如67题如下: 给定两个二进制的字符串,比如a=”11“,b=”1“,返回结果”100“。 阅读全文
摘要:
最近英文版的访问特别慢,转战中文吧 和上一题一样,递归会超时 使用数组可以通过,和上题相比,这题思路就更直接,但是效率比之前更低一点,使用的result和题目所给的格子大小一样,从右下向左上遍历,更加清晰,就是需要额外处理终点 阅读全文
摘要:
使用动态规划,思路很清晰 使用如下代码,发现超时了 这段代码遍历出了所有的路径,而题目只需要路径的数目。 使用数组记录,关键在于怎么确定边界条件 阅读全文
摘要:
3.1 不证明了 3.2 正确性不证了 如果不进行优化,那最坏复杂度和平均复杂度都是n2 冒泡排序代码如下: //冒泡排序 void bubblesort(vector<int>& v) { for (int i = 0; i < v.size() - 1; ++i) { for (int j = 阅读全文
摘要:
一、相关数据结构及其位置(大致浏览即可,介绍流程时再来仔细看) 1.1 进程描述符struct task_struct所在目录:include\linux\sched.h 关注task_struct中如下字段: struct sigpending pending;存放着实时信号,位于include\ 阅读全文
摘要:
一、快速排序 算法导论上关于快速排序有两种写法 第一种,从头到尾遍历,不断将小于基准元素的项移到前面。代码很简介,只需要维护一个交换位置,表示小于基准元素的末尾位置加一 我们看算法导论上的一个例子: 代码实现(代码中用p记录上面i+1的位置,pos2应该为数组长度减1): 第二种,维护两个位置,第一 阅读全文
摘要:
一、递归方程 按照分治的思想,可以将一个递归的复杂度写成递归方程 一、解递归方程--猜然后证明 该方法又称为代入法,步骤如下: 1、猜解的形式 2、数学归纳法证明正确 例子: 我们假设有如下递归式: 我们猜其解为T(n)=O(nlgn),然后对递归式进行替换,得 特别注意:我们替换之后得出的结果必须 阅读全文
摘要:
一、几种比较复杂度的符号 数据结构有描述,相关严格数学定义也不想说了,就这么过了吧。 二、最大子数组的几种解决方法 从最复杂的暴力解法过渡到最简单的动态规划 解析和代码见这里:http://www.cnblogs.com/likaiming/p/8570205.html 三、作业调度问题 后面的动态 阅读全文