自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zfeiyu的博客

https://cppmake.com/

  • 博客(151)
  • 收藏
  • 关注

原创 SVM的支持向量、非线性求解以及对偶问题下的推导过程

支持向量线性可分:​ 一个线性可分的训练集是指:存在超平面(w,b)对于(Xi,Yi)有:若Y~i = 1, 则wX~i + b >= 0 ;若Y~i = -1, 则wX~i + b < 0 .​ 这种形式标示在几何中就是存在一个平面将 训练集 进行切分,使得切分后的两侧属于两个不同的分类哪种划分是我们要找的:​ 在上图中直觉告诉我们是蓝色的,原因可以用容错率来说明,如下图所示,在误差允许情况下,蓝色线的分类的表现是最佳的.也就是找与两侧间隔最大的间隔:​ 将蓝色的线平行移动

2021-01-01 13:27:19 817

原创 感知机模型、多层感知机、激励函数以及BP算法的一些理解

感知机​ 感知机模型起源于人工神经网络中最简单的结构,大致结构如下多层感知机​ 感知机的输入层是在模拟输入的"形状",可以通过约束条件:联立的一元方程组来描述输入在空间中定位,一层输入可以近似成用无限条直线的方程去描述任意形状,在此之外再嵌套一层可以描述任意个数的形状之间的逻辑关系,如图所示就是一个逻辑或,算法判断输入1或者输入2有效的时候最终的输出y =∑ w*x +b = 1​ 表现在几何上是这样的:​ 事实上在每一层如果仅仅权重w与偏置b计算然后求和,输入在每一层仅仅是变换系数和b的

2021-01-01 13:27:07 551 1

原创 简单的编译器前端实践-01

本文同样发于个人博客前言学完编译原理后几次都有想做编译器的冲动,但都由于各种原因半途而废(主要原因是菜),这次工程实践中恰好有个在线编译的模块,所以准备认真试一试,恰逢找实习的时候,所以进展十分缓慢,无法忍受决定从头梳理一遍需求前几次的工作基本上没太深入这部分,其实从上次构建博客开始我就意识到,无论是从一个项目的整体,还是各个部分,需求在刚开始的时候越明确越好,就拿这个编译器来说,你是想做一个Java语言编译还是想做一个自定义语言编译,分为哪些模块,每个模块实现哪些功能,还可以具体到输入是怎么获取,

2021-01-01 13:26:35 242

原创 【LeetCode题解】234. 回文链表

请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用O(n) 时间复杂度和 O(1) 空间复杂度解决此题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/palindrome-linked-list著...

2019-10-09 22:31:46 201

原创 【LeetCode题解】230. 二叉搜索树中第K小的元素

给定一个二叉搜索树,编写一个函数kthSmallest来查找其中第k个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \1 4 \ 2输出: 1示例 2:输入: root = [5,3,6,2,4,null,null,1],...

2019-10-08 21:14:57 199

原创 【LeetCode题解】228. 汇总区间

给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。示例 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 可组成一个...

2019-10-08 19:15:44 151

原创 【LeetCode题解】227. 基本计算器 II

实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格。 整数除法仅保留整数部分。示例1:输入: "3+2*2"输出: 7示例 2:输入: " 3/2 "输出: 1示例 3:输入: " 3+5 / 2 "输出: 5说明:你可以假设所给定的表达式都是有效的。请不要使用内置的库函数 eval。...

2019-10-07 21:16:56 227

原创 深入理解JAVA虚拟机-自动装箱、拆箱

下面为第14行到26行的字节码编译文件,可以看到虚拟机是如何自动装箱和拆箱的,末尾会给出输出答案 L1 LINENUMBER 14 L1 ICONST_1 INVOKESTATIC java/lang/Integer.valueOf (I)Ljava/lang/Integer; ASTORE 2 //存入ICONST_1+I...

2019-10-07 11:20:47 242

原创 【LeetCode题解】221. 最大正方形

在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入:1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximal-square著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注...

2019-10-06 18:53:29 126

原创 【LeetCode题解】165. 比较版本号

比较两个版本号 version1和 version2。如果version1>version2返回1,如果version1<version2 返回 -1, 除此之外返回 0。你可以假设版本字符串非空,并且只包含数字和. 字符。. 字符不代表小数点,而是用于分隔数字序列。例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。...

2019-10-01 14:47:39 247

原创 【LeetCode题解】69. x 的平方根

暴力解法:class Solution { public int mySqrt(int x) { for(int i=1 ; ; i++){ if(x/i<i){ return i-1; } } }}牛顿法:x*x = a可以转化为 x*x - a = ...

2019-09-28 22:08:43 80

原创 深入理解JAVA虚拟机-虚拟机字节码执行引擎

引擎(Engine)是电子平台上开发程序或系统的核心组件。利用引擎,开发者可迅速建立、铺设程序所需的功能,或利用其辅助程序的运转。一般而言,引擎是一个程序或一套系统的支持部分。以上是引擎的百度百科定义,在我看来,虚拟机字节码执行引擎的含义是:一套基于字节码-输出的概念模型,它屏蔽了虚拟机在内部选择编译和优化的部分,尽可能让你理解它的部件以及如何连接运作起来的,尽管内部比这个更复杂。首先来看...

2019-09-28 16:06:58 322

原创 深入理解JAVA虚拟机-类文件结构及加载

在现代编译器中通常会有前端,优化器和后端,前段可以输入不同的语言,后端可以基于目标机器不同的硬件采用不同的后端模块输出。这就保证了编译器的通用性,或者说无关性。在虚拟机中也是一样,虚拟机和字节码提供了虚拟的架构平台和数据存储格式,是实现语言无关性的基础。关于字节码,百度百科中是这样描述的:Java中,字节码是CPU构架(JVM)的具有可移植性的机器语言。[摘自java in a nutshe...

2019-09-26 21:37:01 237

原创 【LeetCode题解】53. 最大子序和

给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。来源:力扣(LeetCode)链接:https://leetco...

2019-09-24 14:58:06 85

原创 【LeetCode题解】50. Pow(x, n)

实现pow(x, n),即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例2:输入: 2.10000, 3输出: 9.26100示例3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 <x< 100.0n是 ...

2019-09-24 12:14:21 107

原创 【LeetCode题解】47. 全排列 II

给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutations-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。class So...

2019-09-23 17:23:52 112

原创 Randomized Select算法

Randomized Select算法中位数问题 等价于集合中第 i 个顺序统计量问题(不考虑奇偶性,偶数取下界) 如果用排序复杂度为nlgn Randomized Select算法是一个期望复杂度为线性的算法 每次以快排的枢纽划分数组 [ begin....k...end ] 如果target<k,则在[ begin....k-1 ]递归查找package com...

2019-09-22 23:14:21 1378 1

原创 【LeetCode题解】43. 字符串相乘

给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1和num2的长度小于110。num1 和num2 只包含...

2019-09-21 16:28:57 155

原创 【LeetCode题解】42. 接雨水

给定n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6来源:力扣(LeetCode)链接:...

2019-09-21 14:40:14 114

原创 JVM结构学习

JDK、JRE、JVM:依次为开发包、运行环境、虚拟机。JDK是完整开发包,包括编译和运行环境以及其他。JRE包括JVM还有其他运行必须的库等。JIT:JVM是一个解释器解释字节码文件,但是对于其中需要反复执行的循环或者常用部分会显得很慢,这时引入了JIT,JIT是一个即时编译器,它使得字节码可以跳过解释环节直接转换成可执行的机器码,加快了执行速度。JVM功能:一段完整的java代码,首先...

2019-09-21 10:57:10 72

原创 【LeetCode题解】41. 缺失的第一个正数

给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例1:输入: [1,2,0]输出: 3示例2:输入: [3,4,-1,1]输出: 2示例3:输入: [7,8,9,11,12]输出: 1说明:你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。来源:力扣(LeetCode)链接:https://leetcode-cn.com/prob...

2019-09-20 16:37:16 101

原创 深入理解JAVA虚拟机-JAVA内存区域

运行时数据区域 对象的创建与访问定位堆和方法区:都是为了共享资源而设计,逻辑上是等价的。但是方法区更侧重于保存"结构":存储运行时常量池,class信息,静态变量等,这些结构是更难解析,更难回收,并非GC的主要目标,可以用永久代实现。而堆更侧重保存"数据元":存放对象Instance,物理上并非连续,可以动态扩展,但不可超出可分配内存,否则OOM,是GC的主要目标,在堆内对In...

2019-09-19 11:34:43 63

原创 【LeetCode题解】114. 二叉树展开为链表

给定一个二叉树,原地将它展开为链表。例如,给定二叉树 1 / \ 2 5/ \ \3 4 6将其展开为:1\ 2 \ 3 \ 4 \ 5 \ 6来源:力扣(LeetCode)链接:https://leetcode-cn.com/p...

2019-09-16 14:00:24 98

原创 【LeetCode题解】109. 有序链表转换二叉搜索树

本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / /-10 5来源:力扣(LeetCode)...

2019-09-16 11:42:00 102

原创 编译原理:Scanners{RE、NFA、DFA}

2019-09-14 17:41:24 421

原创 【LeetCode题解】27. 移除元素

给定一个数组 nums和一个值 val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两...

2019-09-13 11:32:48 182

原创 【LeetCode题解】25. K 个一组翻转链表

给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当k= 2 时,应当返回: 2->1->4->3->5当k= 3 时,应当返回: 3->...

2019-09-12 10:38:47 86

原创 【LeetCode题解】23. 合并K个排序链表

合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6题解:version -1:分治参照希尔排序的思想,将K个链表两两归并,可以使用递归 这里使用迭代:双指针l...

2019-09-12 10:09:38 114

原创 【LeetCode题解】5. 最长回文子串

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"题解:共有两种情况的回文:"aba" "cc" 前一种为:递推表达式为 A[i][j] = A[i+1][j-1] + (s[i]==s[j]),单...

2019-09-11 22:59:52 72

原创 【LeetCode题解】3. 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"w...

2019-09-11 20:58:38 113

原创 【LeetCode题解】19. 删除链表的倒数第N个节点

给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n保证是有效的。进阶:你能尝试使用一趟扫描实现吗?题解:双指针法:left + n = right 当right....

2019-09-11 15:36:05 124

原创 【LeetCode题解】216. 组合总和 III

找出所有相加之和为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]]题解:首先考虑的是分治法,...

2019-09-10 22:20:05 279

原创 【LeetCode题解】211. 添加与搜索单词 - 数据结构设计

设计一个支持以下两种操作的数据结构:void addWord(word)bool search(word)search(word)可以搜索文字或正则表达式字符串,字符串只包含字母.或a-z。. 可以表示任何一个字母。示例:addWord("bad")addWord("dad")addWord("mad")search("pad") -> falsesear...

2019-09-09 10:33:41 401

原创 【LeetCode题解】208. 实现 Trie (前缀树)

实现一个 Trie (前缀树),包含insert,search, 和startsWith这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.startsWith("app"...

2019-09-09 08:13:16 181

原创 List 转 Array数组

共有两个方法:方法一 toArray()无参方法:返回一个Object[ ] ,如果使用特定类型还需要强转非常麻烦 方法二 toArray(T[ ] a)带泛型参数:这个方法要特别注意这个泛型参数,如果是String类型还好,因为存在<String>,可以使用toArray(new String[ list.size() ]),即 String[] str...

2019-09-08 22:09:15 65149 2

原创 【LeetCode题解】210. 课程表 II

现在你总共有 n 门课需要选,记为0到n-1。在选修某些课程之前需要一些先修课程。例如,想要学习课程 0 ,你需要先完成课程1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。示例1:输入: 2, [[1,0]]...

2019-09-08 21:59:40 228

原创 【LeetCode题解】209. 长度最小的子数组

给定一个含有n个正整数的数组和一个正整数s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组[4,3]是该条件下的长度最小的连续子数组。进阶:如果你已经完成了O(n) 时间复杂度的解法, 请尝试O(n log n) 时间复杂度...

2019-09-07 21:31:17 416

原创 【LeetCode题解】207. 课程表

现在你总共有 n 门课需要选,记为0到n-1。在选修某些课程之前需要一些先修课程。例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]]输出: true解释:总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的...

2019-09-07 11:19:22 406

原创 【LeetCode题解】204. 计数质数

统计所有小于非负整数n的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。题解:version1:检验一个数n是否是质数,只要将n对2到n-1判断取余是否为0即可 根据定理 2到n-1判断取余可缩小至2到 根号(n-1)之间 又 2到根号(n-1)之间可以表示:2到n-1之间的质数 可以优化为:...

2019-09-06 14:28:04 92

原创 Spring装配

三种方案:自动化装配(推荐)组件扫描:创建bean@component通知Spring为其创建bean @componentScan启用组件扫描,也可以使用XML启动组件扫描 默认扫描范围为package,或指明包@componentScan("packagename"),也可以使用反射指定类或接口@componentScan(basePackageClasses = { .cla...

2019-09-05 23:05:24 78

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除