k-近邻算法采用测量不同特征值之间的距离方法(上面写的公式)进行分类。 优点:精度高、对异常值不敏感、无数据输入假定。 缺点:计算复杂度高、空间复杂度高。 原理:1.存在一个训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。 2.输入没有标签的新数据后,将新 ...
分类:
其他好文 时间:
2018-05-14 23:05:15
阅读次数:
409
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 示例 2: 说明: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 要求使用空间复杂度为 O(1) 的原地算法。 class Solution: def rotate(self, nums, k): ...
分类:
编程语言 时间:
2018-05-13 16:56:03
阅读次数:
1721
1、题目描述 2、分析 利用C++的 标准模板库 set 对数组进行读取,然后插入,如果检测到元素已经在set内部,则返回该元素值即可。时间复杂度为 O(n),空间复杂度为 O(n); 3、代码 ...
分类:
其他好文 时间:
2018-05-12 20:26:06
阅读次数:
160
算法分析主要研究两个内容:时间复杂度 和 空间复杂度。 时间复杂度分析 一般来说,最关注的是时间复杂度。(或称时间上的增长数量级) 1. 时间复杂度的渐进表示 1. 渐近上界: 表示 T(N) 的阶数小于或等于 f(N) 的阶数,这种记法称为大 O 标记法。 (该算法不会比 f(N) 还坏) 写成极 ...
分类:
编程语言 时间:
2018-05-12 15:12:58
阅读次数:
242
算法,即解决问题的方法。同一个问题,使用不同的算法,虽然得到的结果相同,但是耗费的时间和资源是不同的。 就比如要拧一个螺母,使用扳手还是钳子是有区别的,虽然使用钳子也能拧螺母,但是没有扳手好用。“条条大路通罗马”,解决问题的算法有多种,这就需要判断哪个算法“更好”。 算法VS程序 很多人误以为程序就 ...
分类:
编程语言 时间:
2018-05-11 20:39:57
阅读次数:
264
题目描述: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 示例 2: 说明: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 要求使用空间复杂度为 O(1) 的原地算法。 题目分析: 列表的分片操作 ...
分类:
编程语言 时间:
2018-05-10 13:23:24
阅读次数:
233
定义二叉树节点如下: 一个数组的MaxTree定义如下。数组必须没有重复元素。MaxTree是一棵二叉树, 数组的每一个值对应一个二叉树节点。包括MaxTree树在内且在其中的每一棵子树上, 值最大的节点都是树的头。给定一个没有重复元素的数组arr, 写出生成这个数组的MaxTree的函数, 要求如 ...
分类:
编程语言 时间:
2018-05-03 22:08:22
阅读次数:
237
[APIO2010]特别行动队 题面很直白,就不放了。 太套路了,做起来没点感觉了。 \(dp(i)=dp(j)+a*(s(i)-s(j))^{2}+b*(s(i)-s(j))+c\) 直接推出一个斜率优化的式子上单调队列就好了 时间/空间复杂度:\(O(n)\) #include<cstdio> ...
题目: 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。 测试样例: ...
分类:
其他好文 时间:
2018-05-02 13:07:58
阅读次数:
148
附上学习PPT:传送门 概念 树状数组或者二叉索引树也称作Binary Indexed Tree,又叫做Fenwick树;它的查询和修改的时间复杂度都是log(n),空间复杂度则为O(n),这是因为树状数组通过将线性结构转化成树状结构,从而进行跳跃式扫描。通常使用在高效的计算数列的前缀和,区间和。 ...
分类:
编程语言 时间:
2018-04-23 12:13:06
阅读次数:
163