- 博客(65)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 LeetCode算法——219.存在重复的数2
给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k。如果存在,返回 true;否则,返回 false。输入:nums = [1,2,3,1,2,3], k = 2。输入:nums = [1,2,3,1], k = 3。输入:nums = [1,0,1,1], k = 1。
2024-10-30 08:56:25
305
1
原创 Scala基础11——第11章:泛型
第11章 泛型// Array[String] 使用了泛型为String的Arraydef main(args:Array[String]):Unit={}为什么要用泛型:如果使用Any的话,就需要进行强转,强转可能会出现一些意外情况11.1 协变和逆变class MyList[+T] // 协变class MyList[-T] // 逆变class MyList[T] // 不变协变: Son是Father的子类,则MyList[Son]也是MyList[Father]的子类
2021-08-20 21:37:21
232
原创 Scala基础10——第10章:隐式转换
第10章 隐式转换 当编译器第一次编译器失败的时候,会再次编译,用于将类型进行转换,实现二次编译。 二次编译的时候,实现隐式转换10.1 隐式函数object Test02{ def main(args:Array[String]):Unit={ val new12 = new MyRichInt(12) println(new12.myMax(15)) // 比较12 和 15的大小,返回较大的数
2021-08-20 21:36:45
220
原创 Scala基础9——第9章:异常
第9章 异常9.1 Java的异常处理try{ int i = 1/0;}catch(Exception e){ e.printStackTrace()}finally{ // 无论如何都会执行}9.2 Scala异常处理try{ var n = 10/0}catch{ case ex:ArithmeticException=>{ println("算数错误") } case ex:Exception=>
2021-08-20 21:35:50
157
原创 Scala基础8——第8章:模式匹配
第8章 模式匹配 Scala中的模式匹配,类似于Java中的switch语法8.1 基本语法 模式匹配语法中,采用match关键字声明,每个分支采用case关键字进行声明。 match语法中没有break语句 case _ 默认值, 如果没有case _ 则会抛出异常MatchError。 注:默认值并不需要一定是case _ ,下划线只是一个通配符,下划线可以是任意的变量名,如case a、 case abc 、case _object Test01{ def main(a
2021-08-20 21:35:09
189
原创 Scala基础7——第7章:集合
第7章 集合7.1 集合介绍 (1)Scala的集合有三大类:序列Seq、集Set、映射Map Java的集合也有三大类,List、Set、Map。 List和Set同属于Collection的子类, (2)在Scala中,几乎所有的集合类,都提供了可变和不可变的版本,分别位于以下两个包 不可变集合: scala.collection.immutable 可变集合: scala.collection.mutable (3) Scala不可变集合:该集合对象不可修改,每次
2021-08-20 17:25:06
187
原创 Scala基础6——第6章:面向对象
第6章、面向对象6.1 Scala包(1)基本语法 package 包名(2)包的三大作用(和java一样) ① 区分相同名字的类 ② 当类很多,可以很好的管理类 ③ 控制访问范围6.1.1 包的命名1)命名规则 值包含数字、字母、下划线。不能以数字开头,也不要使用关键字2)命名规范 小写字母+小圆点 com.公司名.项目名.业务名6.1.2 包说明 包名和源文件不需要在同一个地址 用.来分割表示包的层级关系 scala的包可以使用Java
2021-08-19 11:15:36
404
原创 Scala基础5——第5章:函数式编程
第5章:函数式编程(1)面向对象编程 解决问题,分解对象,行为,属性,然后通过对象的关系以及的调用来解决问题 对象:用户 行为:登录、连接JDBC、读取数据库 属性:用户名、密码 Scala语言是一个完全面向对象编程语言。万物皆对象 对象的本质:对数据和行为的一个封装(2)函数式编程 不断的对表达式求值 y=f(x)5.1 函数基本语法(1)基本语法// sum函数名// (x:Int,y:Int)参数名,参数类型// : Int = {} 返回值类型
2021-08-17 12:17:57
349
原创 Scala基础4——第4章:流程控制
第4章:流程控制4.1 分支控制 if-else分支控制有三种:单分支、双分支、多分支。scala中没有switch语法(1)基本语法// 单分支println("请输入你的年龄")val age:Int = StdIn.readInt()if (age >= 18) println("成年")// 双分支if (age >= 18){ print("成年")}else{ println("未成年")}// 多分支if(age <= 6){
2021-08-17 12:16:56
120
原创 Scala基础3——第3章:运算符
第3章:运算符3.1 算术运算符运算符运算范例结果+正号-负号+加5+510-减6-42*乘3*412/除5/51%取模(取余)7%52+字符串相加“He"+“llo”Helloobject Test01{ def main(args:Array[String]):Unit={ val result1 = 10/3 print
2021-08-17 12:16:07
191
原创 Scala基础2——第2章:变量和数据类型
第2章、变量和数据类型2.1 注释 scala的注释和Java完全一样。 (1)单行注释 // (2)多行注释 /* 注释内容 */ (3)文档注释/**** @param args*/def main(args:Array[String]):Unit={ } 代码规范 (1)使用一次tab操作,进行缩进 (2)运算符之间,添加一个空格,如2 + 4 * 5 (3) 一行最长不超过80个字符。2.2 变量和常量(重点) 常量:运行时值不
2021-08-16 13:41:32
294
原创 Scala基础1——第一章:Scala入门
第1章、Scala入门1.1 概述1.1.1 为什么要学习Scala (1)Scala基于JVM,和Java完全兼容,具有跨平台、可移植性好、方便的垃圾回收等特性 (2)Scala比Java更加面向对象。(比Java更加纯粹) (3)Scala是一门函数式编程语言。 (4)Scala更适合大数据的处理 (5)Scala对集合类型数据处理有非常好的支持 (6)Spark的底层用Scala编写1.1.2 Scala发展历史 Scala之父马丁奥德斯基从2001年开始设计Scal
2021-08-16 13:40:35
901
转载 从Paxos到Zookeeper笔记2——第2章:一致性协议
第2章:一致性协议 根据CAP理论,在P必须被满足的情况下,需要在C和A之间进行权衡。因此产生了一系列的一致性协议。 最著名的一致性理论就是二阶段提交协议、三阶段提交协议和Paxos算法。 本章介绍二阶段和三阶段协议的优缺点,并重点介绍Paxos算法。2.1 2PC与3PC 每个节点知道自己的事务是否成功,但无法获取其他节点的结果。 为了让一个事务能够跨节点执行,则需要一个“协调者”来统一调度分布式节点的执行逻辑。 协调者通过调度参与的节点,来保证事务的运行,因此衍生出了二
2021-08-09 20:35:03
157
原创 从Paxos到Zookeeper笔记1——第一章:分布式架构
第1章:分布式架构 将多台机器组成分布式的处理方式越来越收到业界的青睐。1.1 从集中式到分布式 由于大型主机拥有卓越的性能和良好的稳定性,在单机处理方面优势非常明显。 但是随着计算机系统向网络化和微型化的方向发展,传统的集中式处理越来越不适应人们的需求。大型主机的缺点: (1)操作难度大。 (2)价格昂贵 (3)虽然大型主机稳定,但是一旦出现故障后果严重 (4)扩容非常困难阿里提出的“去IOE”运动,让计算和存储能力出现了巨大的挑战,所以电商系统正式迈入分布式系统的时代。
2021-08-09 20:33:31
162
1
转载 Hadoop权威指南笔记4——第4章:关于YARN
第4章:关于YARN Apache YARN(Yet Another Resource Negotiator的缩写) 是Hadoop的集群资源管理系统。 在Hadoop2.0中引入YARN,为了改善MapReduce的实现。 但是YARN还支持其他的分布式计算模式。 YARN提供了请求和使用资源的API,我们写MapReduce、Spark等程序时,底层就调用了YARN的API其作用关系为:MapReduce | Spark | Tez-------------------------
2021-08-08 14:53:59
244
原创 Hadoop权威指南笔记3——第三章:Hadoop分布式文件系统
第3章: Hadoop分布式文件系统 如果文件太大,那么一台机器肯定存不下,所以需要进行分块存储到不同的机器上。这就需要用到网络通信,同时保证文件不丢失。 Hadoop的HDFS则实现了分布式存储的共嗯那个。 本章具体介绍HDFS,以及其他的存储系统(本地文件系统、Amazon S3系统)3.1 HDFS的设计 HDFS以流数据访问模式来存储超大文件,运行于商业硬件集群上 下面具体解释上述句子中的各个词语的含义(1)超大文件: MB,GB,TB甚至PB级别的文件。Hadoop都可以存
2021-08-06 21:10:39
461
1
原创 Hadoop权威指南笔记2——第2章:关于MapReduce
第2章 关于MapReduce MapReduce是一个并行的数据处理模型,作者将使用Java、Ruby和Python实现。2.1 气象数据集 作者收集了气象的数据集,用于进行MapReduce分析。数据格式0057332130 # USAF weather station identifier99999 #WBAN weather station identifier19500101 # observation date8300 #observation time4+51317
2021-07-28 22:18:08
545
原创 Hadoop权威指南笔记1——第1章:初始Hadoop
第1章:初识Hadoop1.1 数据!数据! 我们生活在一个大数据的时代。各处都是数据1.2 数据的存储与分析 硬盘容量在扩大,但是读写数据没有改变。就会导致读取大数据,数据变慢 那么就需要并行读取,但是会存在两个问题。 第一个问题: 硬件故障问题,故障容易照成数据丢失,所以需要进行备份。例如RAID、Hadoop的HDFS 第二个问题:不同磁盘的数据需要相互结合来完成计算,这里就需要用到Hadoop的MapReduce 所以,Hadoop解决了上面两个问题1.3 查询所有数据
2021-07-28 22:17:23
257
原创 Java编程思想笔记16——第16章:数组
16 数组16.1 数组为什么特殊 Java中有大量的持有对象(Collection和Map),为什么还要用数组? 数组存储效率最高,随机访问速度快。但是数组的大小是固定的,并且不能更改。 如果下标超过了数组的长度,就会出现数组越界(RuntimeException)import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Test4 { public static
2021-07-27 18:26:52
160
原创 Java编程思想笔记15——第15章:泛型
15 泛型 多态算是一种泛化机制,比如将参数类型设置为基类,那么就可以传入他的子类。 JaveSE5之后,引入了泛型的概念,使代码可以应用于多种类型。15.1 与C++的比较 作者将Java的泛型与C++进行了一番比较。从而理解泛型的基础以及局限。15.2 简单的泛型 泛型最重要的应用就是创造容器类import java.util.ArrayList;import java.util.List;class Seq<T>{//获得一个容器类 private List&
2021-07-27 18:25:10
193
原创 Java编程思想笔记14——第14章:类型信息
14 类型信息 本章讨论Java如何在运行时识别对象和类的信息。 主要有两种方式 (1)传统的”RTTI“,在编译时已经知道所有类型 (2)”反射“机制,允许在运行时发现和使用类的信息14.1 为什么需要RTTIinterface Animal{ void bark();}class Dog implements Animal{ @Override public void bark() { System.out.println("汪汪汪"); }}class
2021-07-26 13:33:34
213
原创 Java编程思想笔记13——第13章:字符串
12 通过异常处理错误 错误分别编译时错误和运行时错误 编译时错误在编译的时候就会提示 运行时错误则要在允许时才会出现,而异常处理主要是处理运行时错误。12.1 概念 对于异常,不应该置之不理,而是将其处理或者抛给更高的一级。12.2 基本异常 比如说除0操作,就会产生一个异常。 当出现异常时,Java会new一个异常对象,然后弹出异常对象的引用。 如果可以处理,则当当前代码处理,如果处理不了则抛给上一级进行处理。if (t==null) throw new Nul
2021-07-25 11:32:59
230
1
原创 Java编程思想笔记11——第11章:持有对象
11 持有对象 通常,程序总是根据运行时才知道某些条件去创建新的对象。 不需要事先定义好创建的数量,可以根据需要创建任意数量的对象。 数组则必须实现指定数量,所以有所约束。 Java提供了容器类来解决这个问题,基本的类型是List、Set、Queue和Map。这些称之为集合类,且都是Collection类或Map类的子类。 Set不能保存重复值。 Map允许将对象与其他对象关联起来。 这些容器不需要事先指定大小。11.1 泛型和类型安全的容器 在JavaSE5之前,可以像容
2021-07-24 15:10:48
151
1
原创 Java编程思想笔记10——第十章:内部类
10 内部类 将一个类定义在另一个类中,称为内部类。 也许一开始并不需要用到内部类,但是10.8节有相信探讨内部类的使用方式。10.1 创建内部类public class OutClass{ class In1{ private int i = 11; } class In2{ void speak(){ System.out.println("hello"); } }
2021-07-23 19:42:34
219
原创 Java编程思想笔记9——第九章:接口
9 接口 接口和内部类是提供一种将接口与实现分离的更加结构化的方法。 学习接口前需要先学习抽象类9.1 抽象类和抽象方法 在抽象类中提供了抽象方法的机制,抽象方法没有方法体,只有方法名和返回值。abstract void f(); 抽象类是无法new一个对象的。 抽象类的子类必须实现所有的抽象方法。 抽象类可以没有抽象方法,但是作者认为这样做就毫无意义了。abstract class Instrument{ private int i; public abst
2021-07-21 15:02:14
164
原创 PyTorch基础5——自定义损失函数
自定义损失函数自定义损失函数与自定义网络类似。需要继承nn.Module类,然后重写forward方法即可# 自定义损失函数,交叉熵损失函数class MyEntropyLoss(nn.Module): def forward(self,output,target): batch_size_ = output.size()[0] # 获得batch_size num_class = output[0].size()[0] #获得类别数量 lab
2021-07-13 16:57:36
1696
1
原创 PyTorch基础4——加载模型权重
加载模型权重包括1 加载完全的模型权重2 加载某一层的模型权重3 根据tensor形状加载模型权重from torch import nnimport torch# 定义一个网络class Model(nn.Module): def __init__(self,class_num,input_channel=3): super(Model, self).__init__() self.conv1 = nn.Conv2d(in_channels=in
2021-07-13 11:12:13
4215
2
原创 pyTorch基础3——自定义数据集
自定义数据集的步骤定义一个类,并继承 torch.utils.data.Dataset在__init__(构造方法中) 写需要读取的所有数据和标签,如果是图片可以写所有的图片路径在__len__ 方法中定义数据集的总长度在__getitem__ 中写每次循环时调用的方法,index表示当前循环的下标将定义好的类,放入torch.utils.data.DataLoader之中,设置batchsize等信息用迭代器取出每一个数据# 数据处理import torchfrom torch.
2021-07-13 11:07:30
428
原创 PyTorch基础2——快速开始
快速开始接下来会用三个例子,展示用PyTorch训练一个网络的基本代码import torchfrom torch import nnimport random# step1:加载数据# 随机生成100张图片和标签# 每张图片是32*32的,并且有三个通道# 随机生成5个标签(类别)img_list = []label_list = []for i in range(100): img = torch.rand(3,32,32) label = random.ran
2021-07-12 20:38:52
343
原创 PyTorch基础1——张量
参考:《20天吃掉那只pytorch》4、张量 张量是pytroch中最重要的数据类型,神经网络中操作的数据都是张量。输入的图片是一个张量,中间的隐藏层也是张量,最后输出的结果也是张量。 所以懂得张量的基本操作就成了pytroch的基本功。 张量是一个多维数组,维度可以从0到n 如果维度为0那么就是一个常数,如果维度为1那么就是一个向量,如果维度为2那么就是一个矩阵,如果维度为3就是一个立方体,如果维度为4 …4.0 张量的介绍 Pytorch的基本数据结构是张量。 张量即多维数组。
2021-07-11 20:20:32
1765
2
原创 Java编程思想笔记8——第八章:多态
8、多态 在面向对象的程序设计语言中,有三大特性,分别是封装、继承、多态。 多态分离了做什么和怎么做两个概念,做什么对应着接口,而怎么做对应着实现。 多态可以改善代码的组织结构和可读性,还能够创建可扩展的程序。 一个基类(父类)有许多不同的子类,在通过向上转型调用时,可以根据不同的子类,调用不同子类的方法。8.1 再论向上转型 基类(父类)的指针指向子类的对象,就称之为向上转型。class Father{ void speak(){ System.out.pr
2021-07-11 13:09:50
392
3
原创 Java编程思想笔记7——第七章:复用类
7、复用类 复用代码是Java众多引人注目的功能之一。组合和继承 不需要重新写,只需要在新类中调用其他的类即可,这样就能保证原有的程序不被破坏掉。这种方法称为组合。 第二种方法则通过新类继承以前的类,来达到扩展的目的。7.1 组合语法 本书之前已经使用了多次组合技术。class Door{ int height; String color;}class Window{ int height; int width;}class House{
2021-07-11 13:08:37
240
原创 Java编程思想笔记6——第六章:访问控制权限
6、访问控制权限 通过Java提供访问权限修饰词,以供类库开发人员向客户端程序员指明哪些时可用的,哪些是不可用的。 权限从大到小依次为: (1)public (2)protect (3)包访问权限(没有关键词) (4)private6.1 包:库单元 包中有很多的类,这些类属于同一名字空间。 例如:java.util是名字空间,java.util中有ArrayList的类。java.util.ArrayList list = new java.util.Arra
2021-07-11 13:07:43
164
1
原创 Java编程思想笔记5——第五章:初始化与清理
5、初始化与清理在C语言和C++中系统是不会自动清理垃圾,导致初始化的变量一直存在内存中,导致内存泄漏。所以Java提出了“垃圾回收器”,对于不再使用的内存资源,垃圾回收能自动将其释放。5.1 构造器(构造方法)确保初始化对每一个类都需要定义一个initialize()方法,Java用户在操作对象之前会自动调用相应的构造器。在Java中构造函数的名字和类名是相同的。class Rock{ Rock(){ System.out.println("这是构造方法") }
2021-07-11 13:06:21
267
原创 Java编程思想笔记4——第四章:控制执行流程
4、控制执行流程Java使用了C的所有流程控制语句。Java涉及的关键字包括if-else、while、do-while、for、return、break、switchJava并不支持goto。 有一种类似goto的跳转,然后有了很多的限制。4.1 true和false通过 == ,然后相等返回true,如果不相等返回false4.2 if-elseif (表达式1){ //语句}else{ //语句}if (表达式1){ //语句}else if{
2021-07-11 13:04:34
97
空空如也
c语言如何在短时间内产生大量的随机数
2016-11-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人