
算法
空腹熊猫
普通后台开发,喜欢看源码,对机器学习深度学习感兴趣
展开
-
机器学习算法:k近邻(kNN,k-NearestNeighbor)
可用于分类与回归 输入为实例特征向量,输出为类别,可以是多分类 没有显示的学习过程,假设给定一个有监督的训练集,新的实例根据最近k个实例的类别多数表决决定属于哪一类 利用训练数据对特征空间划分 三要素:k值、距离度量、分类规则 ...转载 2020-03-08 08:48:03 · 434 阅读 · 0 评论 -
编程算法题——一个乱序数组,找出和为0的最长子串
输入一个无序的数组,要找到和为0的最长子串列子:输入:[3,0,-1,-2,-3,1,1,1,2,3,1,-2,-1]输出:91、暴力求解法很容易想到,用两个下标i,j来遍历数组,然后将i和j之间的元素求和,这样的方法比较简单,因为下标i和j都遍历了数组,所以时间复杂度有O(n^2),加上求和,所以总的时间复杂度是O(n^3),而空间存储只需要保留i和j还有一个最大长度的变量,所以空间复杂度为O(...原创 2018-05-02 22:54:53 · 2128 阅读 · 0 评论 -
编程算法题——硬币游戏(一)
题目:两个玩家(甲,乙)玩游戏,有一个长度为n的乱序数组(数组每个元素代表一个硬币,数值代表硬币面值),甲乙轮流拿硬币(可以拿走最左边的一个或者两个硬币,拿走不放回),问先玩的玩家是否一定能赢这种题目的思路一般是动态规划:假设存有硬币的数组为a,并且双方都会取当前情况下能取到的最多数值!!!为了方便,a[i]表示从末尾开始的第i枚硬币的数值用sum[i]表示从0开始到下标i的硬币数字和best[i...原创 2018-05-02 23:07:23 · 2208 阅读 · 0 评论 -
编程算法题——字符串旋转
题目:给定一个字符串,将字符串前面若干个字符移到字符串尾部。如,将“abcdef”的前3个字符移到尾部,变成“defabc”。void LeftRotateString(char* s, int n, int m) { }将长度为n的字符串s中的前m个字符移到尾部解法一:蛮力移位每次移动一个字符到尾部,移动m次;而每次将第一个字符移到尾部时,只能是将后面的字符一个个往前挪,所以单次的时间复杂度O(...原创 2018-05-12 14:47:40 · 335 阅读 · 0 评论 -
编程算法题——句子单词翻转
输入一个英文句子,翻转句子中单词顺序。要求单词内字符顺序不变,句子单词间以空格隔开。标点符号与字母一样处理。例如输入:“I am a student.”,输出“student. a am I”。题目比较经典,面试的时候也遇到过,当时想的比较复杂,其实方法挺简单:先将整个句子作翻转,变成“.tneduts a ma I”,然后再识别出句子中的每个单词,为他们翻转得到“student. a am I”...原创 2018-05-12 14:55:55 · 1148 阅读 · 0 评论