随笔分类 - 算法
LeetCode.4 两个有序数组的中位数问题
摘要:这道题是那种典型的有显而易见的解法, 但是想要达到较优的时间复杂度的话就不是这么好做的题目. 我来说说我自己的思考过程 : 1. 首先最先想到的是 O(m + n) 的解法, 也就是利用归并排序的归并将两个数组合成一个. 2. 然后题目中要求的时间复杂度是 O(log (m + n)), 想到log
阅读全文
寻找数组的主元素问题的解法
摘要:所谓主元素, 就是指在数组中出现次数超过N/2的元素, 给出大小为N的数组, 判断是否存在主元素, 若存在,求出主元素. 我的思路 BF解法就不讲了, 我一开始想到的是如果这组数组中数字的范围够小, 或者数字的类型够少, 完全可以用一个数组来记录各个数字出现的次数, 然后再遍历一次即可找出出现次数最
阅读全文
关于最大子序列和问题以及相关衍生问题的分析
摘要:最近在看《数据结构与算法分析》, 里面有提到最大子序列和问题, 也就是从一组N个数中找出其中和最大的连续序列. 书中给出了四种解法, 我感觉确实也是一般寻找解题思路的基本历程, 所以这里准备逐一列出. O(N^3)解法 这种解法的三层循环依次是 : 1. 从第一个数到最后一个数. 2. 序列中数的数
阅读全文
关于选择问题的一些思路.
摘要:最近在看《数据结构与算法分析》, 里面有提到选择问题, 也就是从一组数(N个数)中找出其中第K大的数字. 我的思考过程 : 我一开始想到的第一种是排序, 快排这N个数, 然后取出第N个即可, 这样的话, 时间复杂度为 , 但是这样的话似乎有点太浪费了, 就是说其实只需要排列前面的K个数字就行了, 然
阅读全文
浙公网安备 33010602011771号