对于曾经,假设要我求第k小元素。或者是求前k大元素,我可能会将元素先排序,然后就直接求出来了,可是如今有了更好的思路。 一.线性时间内求第k小元素 这个算法又是一个基于分治思想的算法。其详细的分治思路例如以下: 1.分解:将A[p,r]分解成A[p,q-1]和A[q+1,r]两部分。使得A[p,q- ...
分类:
编程语言 时间:
2017-07-16 13:36:22
阅读次数:
110
一:绪论 表示时间复杂度的阶有: O(1) :常量时间阶 O (n):线性时间阶 O(㏒n) :对数时间阶 O(n㏒n) :线性对数时间阶 O (nk): k≥2 ,k次方时间阶 以下六种计算算法时间的多项式是最常用的。其关系为: O(1)<O(㏒n)<O(n)<O(n㏒n)<O(n2)<O(n3) ...
分类:
编程语言 时间:
2017-07-14 16:25:06
阅读次数:
243
好题。字符串。线性时间。 我认为第一次拿到这个题的人应该不会知道该怎么做吧,要么就是我太弱了。。先搞清楚这个题要求的是什么。从一个长字符串中找一个字串,这个字串中的字符全然包括了另一个给定目标串中的字符,且这个字串的长度要求最小。另一个很重要的简化,题干指明了要求这样的最短字串仅仅有一个,这个限制事 ...
採用分治策略找出第K小的元素!要求程序的时间复杂度为线性函数。 #include<iostream> #include<iterator> #include<algorithm> #include<time.h> #include<vector> using namespace std; /* *选 ...
分类:
其他好文 时间:
2017-06-23 10:39:54
阅读次数:
189
这篇基本上还是自己看的,写一些碎片和注意事项 斜率优化: ①形如 DP[i]=min/max{DP[j]+A[j]+B[j]*C[i]+D[i]+E}方程,将转移方程化为 (DP[j]+A[j])=(-C[i])*(B[j])+(DP[i]-D[i]-E) 即方程斜率式:y=kx+b,其中k=-C[ ...
分类:
其他好文 时间:
2017-06-19 15:14:18
阅读次数:
139
翻译 给定一个整型数组,除了某个元素外其余元素均出现两次。找出这个仅仅出现一次的元素。 备注: 你的算法应该是一个线性时间复杂度。你能够不用额外空间来实现它吗? 原文 Given an array of integers, every element appears twice except for ...
分类:
其他好文 时间:
2017-06-16 17:34:54
阅读次数:
151
什么是反向传播 作者:韩小雨 类别:①反向传播算法 ②反向传播模型 反向传播算法(英:Backpropagation algorithm,简称:BP算法) 算法简介:是一种监督学习算法,常被用来训练多层感知机。 于1974年,Paul Werbos[1]首次给出了如何训练一般网络的学习算法,而人工神 ...
分类:
其他好文 时间:
2017-05-31 10:20:43
阅读次数:
265
这个算法是在线性时间内在筛素数的同时求出所有数的欧拉函数(对于正整数n,小于等于n的数中与n互质的数的数目。 先明确几个性质(p为质数): 1* φ(p)=p-1。(显然,【1,p-1】内的任意整数都与p互质)。 2* 若t mod p ...
分类:
其他好文 时间:
2017-05-27 13:30:05
阅读次数:
115
这道题还是挺难的,属于我前面提到的,给个数组,线性时间找出个什么东西,尽管上面的两个买卖股票也是这类。只是相比之下稚嫩多了。有关至少至多的问题比較烦人,不好想,等再做一些题,可能会发现什么规律。这道题的情况还是比較少的,要么买卖了两次。要么一次。 买卖一次的情况,已经解决过了,如今分析买卖两次的情况 ...
分类:
其他好文 时间:
2017-05-16 20:07:25
阅读次数:
196
二分查找法作为一种常见的查找方法,将原本是线性时间提升到了对数时间范围,大大缩短了搜索时间,具有很大的应用场景,而在LeetCode中,要运用二分搜索法来解的题目也有很多,但是实际上二分查找法的查找目标有很多种,而且在细节写法也有一些变化。之前有网友留言希望博主能针对二分查找法的具体写法做个总结,博 ...
分类:
其他好文 时间:
2017-05-15 09:47:34
阅读次数:
251