自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Scala编程——第六章:Scala函数式编程高级(下)

Scala函数式编程高级(下)一、闭包二、柯里化三、尾递归四、偏函数(Partial Functions)五 、控制抽象一、闭包在Scala中,你可以在任何作用域内定义函数。如在包中、类中、甚至是另一个函数或方法中。在函数体内,你可以访问到相应作用域内的任何变量(这很正常),但是当变量不在作用的时候,函数仍然可以访问到这个变量。这样一个函数称作"闭包"。闭包由代码和代码用到的非局部变量定义构成。 闭包可以让你的函数访问非局部变量。定义一个函数字面量:val addMore = (x: Int) =

2020-07-31 12:25:26 43

原创 Scala编程——第六章:Scala函数式编程高级(上)

Scala函数式编程高级(上)一、作为值的函数二、函数字面量1.字面量2.函数字面量(匿名函数)3.函数字面量的简写(1)简写规则:(2)正确使用占位符三、带参数的函数四、高阶函数五、部分应用函数(Partially Applied Functions)一、作为值的函数在Scala中,函数是"头等公民",就和数字一样,你可以在变量中存放函数。import scala.math._val num = 3.14val fun = ceil _ //注意有个下划线_这段代码将num设为3.14

2020-07-31 10:54:02 40

原创 Scala编程——第五章:Scala函数式编程(基础)

Scala函数式编程基础(上)一、概念说明1.方法与函数2.函数式编程与面向对象编程二、函数的定义1.基本语法2.函数的调用三、过程(procedure)1.基本概念四、惰性函数五、异常六、函数字面量Scala函数式编程分成基础部分和高级部分。高级部分参考:一、概念说明1.方法与函数方法: 定义函数最常用的方式是作为某个对象的成员。这样的函数被称为方法。函数:在Scala中函数和方法几乎可以等同(定义、使用、运行机制都是一样的),只是函数的使用方式更加灵活。区别:Scala中函数是一等公民,像

2020-07-29 18:45:58 61

原创 Scala编程——第四章:Scala高级for循环

Scala高级for循环一、基础用法二、高级用法一、基础用法1.基础语法语法:for ( i <- 表达式)scala 不支持java的for(初始变量;条件;更新变量)的写法。i:循环变量,<- :循环符, 表达式: 循环的区间。通过 " i<- 表达式 " 这样的生成器语法,可以遍历表达式区间的元素。for(i <- 1 to 3) println(i) // 1 to 3 左闭右闭 包含1和3for(i <- 1 until 3) println(

2020-07-28 11:55:11 40

原创 Scala编程——第三章:Scala流程控制

Scala流程控制一、流程控制说明二、分支控制1.if-else2. switch(模式匹配)三、循环控制1.while1.1while循环中的中断2.for3.while与for一、流程控制说明Scala流程控制结构和java语言基本相同。主要有以下三种结构:顺序控制:程序从上到下顺序执行,中间没有任何的判断和跳转分支控制:if-else分支; switch分支(scala中没有switch,而是使用模式匹配,后面单独讲解)循环控制:while循环、for循环(for功能很强大,后面单独讲。

2020-07-28 10:48:45 21

原创 5. 最长回文子串——暴力解法+动态规划+中心扩散

5. 最长回文子串一、题目二、分析三、题解一、题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”链接: 5.最长回文串二、分析暴力匹配最简单也是最直接的方法。直接暴力遍历字符串,枚举所有长度>= 2的子串,依次判是否是回文。具体实现时,记录当前回文串的长度,可以根据当前的最大长

2020-07-27 17:17:11 62

原创 Scala编程——第二章:Scala基础入门(变量、数据类型、运算符)

Scala基础入门一、变量1.定义变量2.深入理解var 和 val二、数据类型1.AnyVal和AnyRef2.Scala类的继承关系3.Scala隐式转化三、运算符一、变量1.定义变量基本语法val | var 变量名 [:变量类型] = 变量值 //例子 val age: Int = 12 var sal: Double = 10000.5 var sal = 12000.5注意事项1.变量类型可以省略。Scala可以通过类型推断,推断出那些不显示指定的类型。2. 类型确定

2020-07-27 14:48:22 65

原创 Scala编程——第一章:Scala简介

Scala基础入门1.Scala简介1.1.Scala是什么?1.2 why Scala?注:文章参考《Scala编程》和《快学Scala》。仅用于个人学习记录,侵权删。1.Scala简介1.1.Scala是什么?Scala 是一门综合了面向对象和函数式编程概念的静态类型的编程语言。运行在标准的 Java 平台上,可以与所有 Java 类库无缝协作。Scala是面向对象的。它对面向对象的实现是纯的:每个值都是对象,每个操作都是方法调用。比如 1+2 ,实际上是在调用 Int 类里定义的名+

2020-07-27 10:45:04 43

原创 Java——String类的用法详解

Java String类的用法详解一、String二、StringBuilder三、StringBuffer一、StringString:适用于少量的字符串操作。二、StringBuilder线程不安全 StringBuilder的方法没有synchronized键字修饰,所以不能保证线程安全性。适用于单线程下在字符串缓冲区进行大量操作。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)运算速度比较(通常情况下):StringB

2020-07-24 10:31:28 45

原创 剑指 Offer 07. 重建二叉树——【前中序】和【中后序】重建二叉树的递归思路详解

剑指 Offer 07. 重建二叉树一、题目二、分析三、题解四、复杂度分析五、扩展:从中序与后序遍历序列构造二叉树一、题目剑指 Offer 07. 重建二叉树105. 从前序与中序遍历序列构造二叉树 二、分析[首先不考虑代码,如何根据前序中序将二叉树还原]前序遍历的特点: 节点按照 [根 | 左 | 右] ; 后序 :[根 | 左 | 右] 排序根据以上特点,按照以下顺序 可以 还原出二叉树1. 前序数组的首个元素即为根节点root的值2. 在中序数组中找到根节点root

2020-07-22 14:51:04 59

原创 剑指 Offer 55 - I. 二叉树的深度——DFS+BFS解题

剑指 Offer 55 - I. 二叉树的深度一、题目二、分析三、题解一、题目二、分析二叉数遍历问题一般就两种解题方法:DFS + DFS可参考文章:二叉树遍历系列总结+递归/迭代的统一写法三、题解DFSclass Solution { public int maxDepth(TreeNode root) { //【递归 实质上就是 DFS】 //递归终止条件 if(root == null) return 0

2020-07-21 15:32:30 57

原创 二叉树遍历系列总结+递归/迭代的统一写法

二叉树遍历系列总结+递归/迭代的统一写法一、题目二、分析:DFS/BFS 与树的遍历三、递归的写法四、迭代写法1. 不统一版本的迭代写法2. 统一版本写法本文提供LeetCode 二叉树 前中序层 四种遍历方式的 递归 和 迭代 统一写法递归写法很简单,在面试中不足以获得面试官的青睐,应该重点掌握迭代写法一、题目144. 二叉树的前序遍历94 . 二叉树的中序遍历145. 二叉树的后序遍历二、分析:DFS/BFS 与树的遍历有两种通用的遍历树的策略:深度优先搜索(DFS)在

2020-07-20 16:53:13 121

原创 剑指 Offer 40. 最小的k个数——TopN问题

剑指 Offer 40. 最小的k个数_TopN问题一、题目二、题解分析三、题解四、复杂度分析一、题目输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]限制:0 <= k <= arr.length <= 10

2020-07-17 18:03:38 51

原创 剑指 Offer 42. 连续子数组的最大和——动态规划详细解题思路

剑指 Offer 42. 连续子数组的最大和一、题目输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。提示:1 <= arr.length <= 10^5-100 <= arr[i] <= 100注意:本题与主站 53

2020-07-15 14:56:38 43

转载 什么是动态规划(Dynamic Programming)?动态规划的意义是什么?(2)

什么是动态规划(Dynamic Programming)?动态规划的意义是什么? 第二篇注:本文源自知乎两篇文章,第一篇注重基础原理讲解 第二篇注重解题思路分析。仅用于个人学习,侵权删。第二篇作者:苗华东连接:阅读原文来源:知乎本文清楚的讲解了什么是动态规划,同时也能给一种如何分析、求解动态规划的思考方式。...

2020-07-15 10:26:13 103

转载 什么是动态规划(Dynamic Programming)?动态规划的意义是什么?(1)

什么是动态规划(Dynamic Programming)?动态规划的意义是什么? 第一篇0. intro1. 从一个生活问题谈起2. 几个简单的概念3. 对DP原理的一点讨论5 例题最长上升子序列注:本文源自知乎两篇文章,第一篇注重基础原理讲解 第二篇注重解题思路分析。仅用于个人学习,侵权删。第一篇作者:阮行止链接:点击阅读原文来源:知乎0. intro很有意思的问题。以往见过许多教材,对动态规划(DP)的引入属于“奉天承运,皇帝诏曰”式:不给出一点引入,见面即拿出一大堆公式吓人;学生则死啃

2020-07-15 10:16:12 146 1

原创 动态规划_图文详解_Java代码_leetcode刷题模板

动态规划_图文详解_Java代码_leetcode刷题模板一、参考连接二、动态规划解题套路框架(一)、斐波那契数列1、暴力递归2、带备忘录的递归解法3、dp 数组的迭代解法(二)、凑零钱问题1、暴力递归2、带备忘录的递归3、dp 数组的迭代解法(三)、最后总结四、动态规划答疑篇(一)、最优子结构详解(二)、dp 数组的遍历方向一、参考连接知乎:什么是动态规划(Dynamic Programming)?动态规划的意义是什么?知乎:如何理解动态规划labuladong的算法小抄:动态规划解题套路框架

2020-07-10 16:08:40 147

原创 深度优先搜索DFS_图文详解_Java代码_leetcode刷题模板

一、参考链接-注 本文仅用于个人学习,侵权删。1、基础讲解搜索思想——DFS & BFS(基础基础篇)数据结构:图的遍历–深度优先、广度优先2、套路模板深度优先搜索模板回溯算法解题套路框架二、图文讲解回溯算法解题套路框架DFS 算法就是回溯算法 ,废话不多说,直接上回溯算法框架。解决一个回溯问题,实际上就是一个决策树的遍历过程。你只需要思考 3 个问题:1、路径:也就是已经做出的选择。2、选择列表:也就是你当前可以做的选择。3、结束条件:也就是到达决策树

2020-07-07 18:28:01 278

原创 Java LinkedList 用法详解

Java LinkedList 用法详解一 、java Queue 常用方法java Queue中 add/offer,element/peek,remove/poll中的三个方法均为重复的方法,在选择使用时不免有所疑惑,这里简单区别一下。 原文链接java Queue 常用方法.1、add()和offer()区别:add()和offer()都是向队列中添加一个元素。一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,调用 add() 方法就会抛出一个 unchecked 异常,而

2020-07-06 20:39:08 139

原创 广度优先搜索BFS_图文详解_Java代码_leetcode刷题模板

搜索思想——DFS & BFS(基础基础篇)BFS 算法解题套路框架广度优先搜索 - 模板数据结构:图的遍历–深度优先、广度优先

2020-07-06 11:43:27 112

原创 Hadoop权威指南_读书笔记_第11章 管理Hadoop——namenode与secondarynamenode

详解namenode与secondarynamenode一 、NameNode二、Secondary Namenode一 、NameNode1. namenode的目录结构运行中的namenode有如下所示的目录结构1.VERSION文件是一个java属性文件,其中包含正在运行的HDFS的版本信息。文件一般包含以下内容layoutVersion:是一个负整数,描述HDFS持久性数据结构的版本。namespaceID:是文件系统命名空间的唯一标识符,是在namenode首次格式化时创建

2020-07-01 10:20:30 60

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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