摘要:
朴素解法 三重遍历 通过三个嵌套for循环实现三角形三边所有组合的遍历,无需排序,只需要保证下标 \(i < j < k\) 避免重复即可; 时间复杂度 \(O(n^3)\), 空间复杂度 \(O(n).\) 排序 + 二分查找 针对上述三重遍历的方法,比较容易想到的改进方法为二分查找。我们注意到, 阅读全文
摘要:
今天学习的是机器学习中最为简单的一个算法:K近邻算法,简称KNN。由于学习主要参照《机器学习实战》这本书进行,本系列文章中涉及到的概念与实例绝大部分来源于此。本文主要从KNN算法概述,使用K-近邻算法改进约会网网站的配对效果,手写识别函数三个方面来展开,本文的主要用意在于阐释《机器学习实战》中源代码 阅读全文
摘要:
概述+线性代数 为什么学习图形学? Computer Graphics is AWESOME! 主要涉及内容: 光栅化 曲线和网格 光线追踪 动画与模拟 Differences between CG and CV: 线性代数回顾 向量(Vectors) 方向和长度 模长:\(||\vec{a}||\ 阅读全文
摘要:
力扣514 自由之路 知识点: 思路是贪心->暴搜->动态规划 由于数组只与前一列有关,因此写成了滚动数组的形式,只是听说叫滚动数组,想法是很自然的 class Solution { public: //直观上贪心,但是不能保证最优 //每次的状态有限,且到该状态后,只要记录了该状态下所有的可能,就 阅读全文
摘要:
力扣31题:下一个排列 该操作直接在STL中有实现,支持重复元素; 交换可以用swap函数; 主要思路为从右往左数到第一个逆序对,逆序对的前者与之后的所有序列中比他大的最小值进行交换。最后把这一段进行reverse就可。 如果该序列已经为最大值,则reverse整个序列。 class Solutio 阅读全文
摘要:
力扣 122 买卖股票的最佳时机II 思路: 动态规划,表面上是$O(2^n)$的搜索空间,实际上该天的选择只与前一天的状态(是否持有股票)有关。从收益的角度来看,确实每一天的不同选择都会产生不同的分支。动态规划相当于对原解空间进行了剪枝,剪枝的关键在于之后的选择只与当前是否持有股票的状态有关,因此 阅读全文
摘要:
力扣1356 根据数字二进制下 1 的数目排序 知识点: 十进制转二进制的熟练,关键在于do_while vector的反转方式,reverse函数 sort的自定义函数不能是普通成员函数 静态成员函数不能调用非静态函数 class Solution { public: //十进制转二进制 stat 阅读全文
摘要:
题目链接:https://leetcode-cn.com/problems/find-in-mountain-array/ 题意 : 存在一个“山峰”数组,但是不能直接访问,只能通过get()函数来得到其相应坐标的值,要求在这个数组中找一个target,如果存在,返回索引,反之返回-1。 解题思路 阅读全文
摘要:
* python 高阶函数:函数名也可作为右值或别的函数的参数和返回值 map: map(f,a) 讲f函数的效果作用在每一个a的元素上。 reduce:reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)。 filter: filter(f,a 阅读全文
摘要:
http://feihu.me/blog/2014/sgi-std-sort/ 阅读全文