算法
菜鸡儿的架构师之路
这个作者很懒,什么都没留下…
展开
-
从零开始敲LeetCode中级(Java)-1:三数之和
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]解答:一开始...原创 2018-07-13 15:03:01 · 4082 阅读 · 6 评论 -
Pyhton实现决策树算法 MNIST数据集
Pyhton实现决策树算法 MNIST数据集决策树是一种比较接近人类思维方式的算法,将样本通过每个特征值的信息增益进行划分,从而保证每个划分之后的结果信息熵的消减量达到最大。具体的原理请大家自己查找相关资料。sklearn实现代码如下, 准确率可以达到90%左右。from sklearn import treeimport numpy as npfrom tensorflow.examp...原创 2018-11-20 12:00:05 · 4056 阅读 · 2 评论 -
Python实现支持向量机(SVM) MNIST数据集
Python实现支持向量机(SVM) MNIST数据集SVM的原理这里不讲,大家自己可以查阅相关资料。下面是利用sklearn库进行svm训练MNIST数据集,准确率可以达到90%以上。from sklearn import svmimport numpy as npfrom tensorflow.examples.tutorials.mnist import input_data...原创 2018-11-20 11:22:25 · 13749 阅读 · 3 评论 -
Tensorflow: MNIST数据集实现DNN、CNN、LSTM神经网络
最近学了一下tensorflow的基本用法,这里做一下总结全连接深度神经网络(FC-DNN)全连接深度神经网络,每一层的神经元直接都是全连接,并且不共享权值。在普通的分类的问题中表现的不错,但是对于图片处理等具有网格形式的数据,最好采用CNN(卷积神经网络),对于序列化数据如NLP(自然语言处理)、文字分析等采用RNN(循环神经网络)表现更佳。DNN用tensorflow的实现代码如下。i...原创 2018-11-17 23:10:30 · 1159 阅读 · 1 评论 -
Python 实现朴素贝叶斯 MNIST数据集
Python实现朴素贝叶斯算法朴素贝叶斯是机器学习的一种算法,之所以成为朴素,是因为它的想法“简单”,简单地认为样本中所有的特征都无关,即P(AB) = P(A)P(B)。所以,有P(y|xi) = P(y)P(x0 = xi0|y)P(x1 = xi1|y)P(x2 = xi2|y)…P(xk = xik|y)y是贝叶斯对于xi是y类的估计大小最终对xi的预测分类是argmaxP(y|x...原创 2018-11-19 21:42:32 · 2914 阅读 · 1 评论 -
LeetCode 887:鸡蛋掉落[Python实现]
你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑。每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层 X 扔下(满足 1 <= X &l...原创 2018-11-21 21:40:16 · 2740 阅读 · 1 评论 -
kd-tree找最邻近点 Python实现
kd-tree找最邻近点 Python实现基本概念kd-tree是KNN算法的一种实现。算法的基本思想是用多维空间中的实例点,将空间划分为多块,成二叉树形结构。划分超矩形上的实例点是树的非叶子节点,而每个超矩形内部的实例点是叶子结点。超矩形划分方法有数据集datalist,其中的数据是Xi,每个Xi由多个特征值组成。首先将所有数据的Xi[0]找出,取得Xi[0]的中位数center,在树的...原创 2018-10-14 12:30:56 · 3796 阅读 · 0 评论 -
LeetCode:862. 和最短为k的最短子数组[Java实现]
题目返回 A 的最短的非空连续子数组的长度,该子数组的和至少为 K 。如果没有和至少为 K 的非空子数组,返回 -1 。 示例 1:输入:A = [1], K = 1输出:1示例 2:输入:A = [1,2], K = 4输出:-1示例 3:输入:A = [2,-1,2], K = 3输出:3 提示:1 <= A.length <= 500...原创 2018-10-12 11:17:43 · 773 阅读 · 0 评论 -
Python梯度下降法实现二元逻辑回归
Python梯度在下降法实现二元逻辑回归二元逻辑回归假设函数定义当函数值大于等于0.5时,结果为1,当函数值小于0.5时,结果为0.函数的值域是(0, 1)。二元逻辑回归的损失函数上图为二元逻辑回归的概率公式,则代价函数可以表示为损失函数求偏倒数为可以发现和线性回归的结果是一样的,只不过是假设函数h发生了变化。正则化为了避免过拟合,通常在代价函数后加一个正则化项,针对二元逻...原创 2018-10-01 09:30:53 · 2529 阅读 · 1 评论 -
LeetCode:228. 汇总区间[Java实现]
给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。示例 1:输入: [0,1,2,4,5,7] 输出: [“0->2”,”4->5”,”7”] 解释: 0,1,2 可组成一个连续的区间; 4,5 可组成一个连续的区间。 示例 2:输入: [0,2,3,4,6,8,9] 输出: [“0”,”2->4”,”6”,”8->9”] 解释: 2,3,4 ...原创 2018-07-27 12:06:28 · 526 阅读 · 0 评论 -
LeetCode:227. 基本计算器 II [Java实现]
实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。示例 1:输入: “3+2*2” 输出: 7 示例 2:输入: ” 3/2 ” 输出: 1 示例 3:输入: ” 3+5 / 2 ” 输出: 5这是一个典型的栈的应用。上代码s = s.replaceAll(...原创 2018-07-26 20:45:13 · 798 阅读 · 0 评论 -
LeetCode: 223. 矩形面积 [Java实现]
在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积。每个矩形由其左下顶点和右上顶点坐标表示,如图所示。Rectangle Area示例:输入: -3, 0, 3, 4, 0, -1, 9, 2 输出: 45说明: 假设矩形面积不会超出 int 的范围。 我写的可能较为繁琐,有非常简单的方法求的交汇矩形的面积,这里我只贴出我自己的笨方法 public int comp...原创 2018-07-26 12:42:43 · 446 阅读 · 0 评论 -
LeetCode:222. 完全二叉树的节点个数
给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。示例:输入: 1 / \ 2 3 / \ / 4 5 6输出: 6这一题遍历二叉树容易超时,...原创 2018-07-26 10:28:54 · 244 阅读 · 0 评论 -
LeetCode-221:最大正方形[Java实现]
在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0输出: 4 有很多人用动态规划来做,这里提供一种非dp的做法,运行时间17ms。class Solution { public int maximalSquare(char[][] ...原创 2018-07-25 14:24:06 · 861 阅读 · 0 评论 -
LeetCode-220:存在重复元素 [Java实现]
给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 ķ。示例 1:输入: nums = [1,2,3,1], k = 3, t = 0 输出: true 示例 2:输入: nums = [1,0,1,1], k = 1, t = 2 输出: true 示例 ...原创 2018-07-25 12:46:25 · 1079 阅读 · 0 评论 -
LeetCode-216:组合总和 III [Java实现]
找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。 解集不能包含重复的组合。 示例 1:输入: k = 3, n = 7 输出: [[1,2,4]] 示例 2:输入: k = 3, n = 9 输出: [[1,2,6], [1,3,5], [2,3,4]]这一题是一个明显的深...原创 2018-07-25 12:42:53 · 464 阅读 · 0 评论 -
LeetCode-139 单词拆分
给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”] 输出: true 解释: 返回 true 因为 “leetcode”...原创 2018-07-13 19:47:18 · 381 阅读 · 0 评论 -
LeetCode115:不同的子序列 [Python3实现]
题目给定一个字符串 S 和一个字符串 T,计算在 S 的子序列中 T 出现的个数。一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)示例 1:输入: S = “rabbbit”, T = “rabbit”输出: 3解释:如下图所示, 有 3 种可以从 S ...原创 2018-11-29 13:47:18 · 637 阅读 · 0 评论