Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦境迷离
Cs Summary Reflection
提交
25e51f42
C
Cs Summary Reflection
项目概览
梦境迷离
/
Cs Summary Reflection
10 个月 前同步成功
通知
4
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Cs Summary Reflection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
25e51f42
编写于
11月 14, 2020
作者:
梦境迷离
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update and add article
上级
e15938f1
变更
26
隐藏空白更改
内联
并排
Showing
26 changed file
with
158 addition
and
44 deletion
+158
-44
README-en.md
README-en.md
+2
-2
README.md
README.md
+2
-2
article_list.md
article_list.md
+20
-18
build.gradle
build.gradle
+8
-3
countByAuthors.md
countByAuthors.md
+1
-1
docs/_posts/Java虚拟机/2020-10-14-Java虚拟机-Java内存模型2.md
docs/_posts/Java虚拟机/2020-10-14-Java虚拟机-Java内存模型2.md
+1
-1
docs/_posts/Java虚拟机/2020-10-14-Java虚拟机-Java对象的内存布局.md
docs/_posts/Java虚拟机/2020-10-14-Java虚拟机-Java对象的内存布局.md
+1
-1
docs/_posts/Java虚拟机/2020-10-16-Java虚拟机-DVM和JVM有什么区别.md
docs/_posts/Java虚拟机/2020-10-16-Java虚拟机-DVM和JVM有什么区别.md
+1
-1
docs/_posts/Java虚拟机/2020-10-16-Java虚拟机-JVM中的方法内联.md
docs/_posts/Java虚拟机/2020-10-16-Java虚拟机-JVM中的方法内联.md
+1
-1
docs/_posts/Java虚拟机/2020-10-16-Java虚拟机-ZGC简介.md
docs/_posts/Java虚拟机/2020-10-16-Java虚拟机-ZGC简介.md
+1
-1
docs/_posts/Java虚拟机/2020-10-16-Java虚拟机-最重要的JVM参数指南.md
docs/_posts/Java虚拟机/2020-10-16-Java虚拟机-最重要的JVM参数指南.md
+1
-1
docs/_posts/Java虚拟机/2020-10-19-Java虚拟机-Java中的永久代与元空间.md
docs/_posts/Java虚拟机/2020-10-19-Java虚拟机-Java中的永久代与元空间.md
+1
-1
docs/_posts/Java虚拟机/2020-10-19-Java虚拟机-Java垃圾收集中如何使用Verbose.md
..._posts/Java虚拟机/2020-10-19-Java虚拟机-Java垃圾收集中如何使用Verbose.md
+1
-1
docs/_posts/Java虚拟机/2020-10-26-Java虚拟机-常见的垃圾收集器.md
docs/_posts/Java虚拟机/2020-10-26-Java虚拟机-常见的垃圾收集器.md
+1
-1
docs/_posts/Scala/2020-07-05-Scala-Scala的implicit和implicitly.md
...posts/Scala/2020-07-05-Scala-Scala的implicit和implicitly.md
+0
-0
docs/_posts/Scala/2020-10-17-Scala-Scala所有集合对比.md
docs/_posts/Scala/2020-10-17-Scala-Scala所有集合对比.md
+1
-1
docs/_posts/其他/2020-10-27-其他-Consul和Raft介绍.md
docs/_posts/其他/2020-10-27-其他-Consul和Raft介绍.md
+1
-1
docs/_posts/其他/2020-10-27-其他-Consul领导选举.md
docs/_posts/其他/2020-10-27-其他-Consul领导选举.md
+1
-1
docs/_posts/其他/2020-10-28-其他-ProtocolBuffer的原理.md
docs/_posts/其他/2020-10-28-其他-ProtocolBuffer的原理.md
+1
-1
docs/_posts/并发/2020-10-12-并发-Volatile.md
docs/_posts/并发/2020-10-12-并发-Volatile.md
+1
-1
docs/_posts/并发/2020-10-13-并发-线程池.md
docs/_posts/并发/2020-10-13-并发-线程池.md
+1
-1
docs/_posts/并发/2020-10-20-并发-ReentrantReadWriteLock.md
docs/_posts/并发/2020-10-20-并发-ReentrantReadWriteLock.md
+1
-1
docs/_posts/并发/2020-11-05-并发-并发中的ABA问题.md
docs/_posts/并发/2020-11-05-并发-并发中的ABA问题.md
+1
-1
docs/_posts/随笔/2020-11-14-随笔-快速动态切换JDK版本.md
docs/_posts/随笔/2020-11-14-随笔-快速动态切换JDK版本.md
+50
-0
kotlin-leetcode/src/main/kotlin/io/github/dreamylost/Leetcode_1122.kt
...ode/src/main/kotlin/io/github/dreamylost/Leetcode_1122.kt
+53
-0
kotlin-leetcode/src/main/kotlin/io/github/dreamylost/dreamylost.md
...etcode/src/main/kotlin/io/github/dreamylost/dreamylost.md
+5
-1
未找到文件。
README-en.md
浏览文件 @
25e51f42
...
...
@@ -49,8 +49,8 @@ For details, please see [CONTRIBUTING](./CONTRIBUTING-en.md)
### Language environment of this repository
-
Scala 2.12.
8+
-
Java 1.8
+
-
Scala 2.12.
12
-
Java 1.8
-
Python 3.0+
-
Rust 1.4+
-
Kotlin 1.3+
...
...
README.md
浏览文件 @
25e51f42
...
...
@@ -49,8 +49,8 @@
### 环境
-
Scala 2.12.
8+
-
Java 1.8
+
-
Scala 2.12.
12
-
Java 1.8
-
Python 3.0+
-
Rust 1.4+
-
Kotlin 1.3+
...
...
article_list.md
浏览文件 @
25e51f42
...
...
@@ -88,23 +88,23 @@
[
虚拟机相关使用测试代码
](
./docs/_posts/Java虚拟机/2018-11-11-Java虚拟机-虚拟机相关使用测试代码.md
)
[
Java内存模型2
](
./docs/_posts/Java虚拟机/2020-10-14-
复习整理
-Java内存模型2.md
)
[
Java内存模型2
](
./docs/_posts/Java虚拟机/2020-10-14-
Java虚拟机
-Java内存模型2.md
)
[
Java对象的内存布局
](
./docs/_posts/Java虚拟机/2020-10-14-
复习整理
-Java对象的内存布局.md
)
[
Java对象的内存布局
](
./docs/_posts/Java虚拟机/2020-10-14-
Java虚拟机
-Java对象的内存布局.md
)
[
DVM和JVM有什么区别
](
./docs/_posts/Java虚拟机/2020-10-16-
复习整理
-DVM和JVM有什么区别.md
)
[
DVM和JVM有什么区别
](
./docs/_posts/Java虚拟机/2020-10-16-
Java虚拟机
-DVM和JVM有什么区别.md
)
[
JVM中的方法内联
](
./docs/_posts/Java虚拟机/2020-10-16-
复习整理
-JVM中的方法内联.md
)
[
JVM中的方法内联
](
./docs/_posts/Java虚拟机/2020-10-16-
Java虚拟机
-JVM中的方法内联.md
)
[
ZGC简介
](
./docs/_posts/Java虚拟机/2020-10-16-
复习整理
-ZGC简介.md
)
[
ZGC简介
](
./docs/_posts/Java虚拟机/2020-10-16-
Java虚拟机
-ZGC简介.md
)
[
最重要的JVM参数指南
](
./docs/_posts/Java虚拟机/2020-10-16-
复习整理
-最重要的JVM参数指南.md
)
[
最重要的JVM参数指南
](
./docs/_posts/Java虚拟机/2020-10-16-
Java虚拟机
-最重要的JVM参数指南.md
)
[
Java中的永久代与元空间
](
./docs/_posts/Java虚拟机/2020-10-19-
复习整理
-Java中的永久代与元空间.md
)
[
Java中的永久代与元空间
](
./docs/_posts/Java虚拟机/2020-10-19-
Java虚拟机
-Java中的永久代与元空间.md
)
[
Java垃圾收集中如何使用Verbose
](
./docs/_posts/Java虚拟机/2020-10-19-
复习整理
-Java垃圾收集中如何使用Verbose.md
)
[
Java垃圾收集中如何使用Verbose
](
./docs/_posts/Java虚拟机/2020-10-19-
Java虚拟机
-Java垃圾收集中如何使用Verbose.md
)
[
常见的垃圾收集器
](
./docs/_posts/Java虚拟机/2020-10-26-
复习整理
-常见的垃圾收集器.md
)
[
常见的垃圾收集器
](
./docs/_posts/Java虚拟机/2020-10-26-
Java虚拟机
-常见的垃圾收集器.md
)
## Rust
...
...
@@ -140,9 +140,9 @@
[
Scala的类型系统和泛型
](
./docs/_posts/Scala/2020-06-17-Scala-Scala的类型系统和泛型.md
)
[
](
./docs/_posts/Scala/2020-07-05
-Scala的implicit和implicitly.md
)
[
Scala的implicit和implicitly
](
./docs/_posts/Scala/2020-07-05-Scala
-Scala的implicit和implicitly.md
)
[
Scala所有集合对比
](
./docs/_posts/Scala/2020-10-17-
复习整理
-Scala所有集合对比.md
)
[
Scala所有集合对比
](
./docs/_posts/Scala/2020-10-17-
Scala
-Scala所有集合对比.md
)
## Shapeless
...
...
@@ -180,11 +180,11 @@
[
javap和ASM
](
./docs/_posts/其他/2020-09-03-其他-javap和ASM.md
)
[
Consul和Raft介绍
](
./docs/_posts/其他/2020-10-27-
复习整理
-Consul和Raft介绍.md
)
[
Consul和Raft介绍
](
./docs/_posts/其他/2020-10-27-
其他
-Consul和Raft介绍.md
)
[
Consul领导选举
](
./docs/_posts/其他/2020-10-27-
复习整理
-Consul领导选举.md
)
[
Consul领导选举
](
./docs/_posts/其他/2020-10-27-
其他
-Consul领导选举.md
)
[
ProtocolBuffer的原理
](
./docs/_posts/其他/2020-10-28-
复习整理
-ProtocolBuffer的原理.md
)
[
ProtocolBuffer的原理
](
./docs/_posts/其他/2020-10-28-
其他
-ProtocolBuffer的原理.md
)
## 常用命令
...
...
@@ -214,13 +214,13 @@
[
StampedLock的实现分析
](
./docs/_posts/并发/2018-11-11-并发-StampedLock的实现分析.md
)
[
Volatile
](
./docs/_posts/并发/2020-10-12-
复习整理
-Volatile.md
)
[
Volatile
](
./docs/_posts/并发/2020-10-12-
并发
-Volatile.md
)
[
线程池
](
./docs/_posts/并发/2020-10-13-
复习整理
-线程池.md
)
[
线程池
](
./docs/_posts/并发/2020-10-13-
并发
-线程池.md
)
[
ReentrantReadWriteLock
](
./docs/_posts/并发/2020-10-20-
复习整理
-ReentrantReadWriteLock.md
)
[
ReentrantReadWriteLock
](
./docs/_posts/并发/2020-10-20-
并发
-ReentrantReadWriteLock.md
)
[
并发中的ABA问题
](
./docs/_posts/并发/2020-11-05-
复习整理
-并发中的ABA问题.md
)
[
并发中的ABA问题
](
./docs/_posts/并发/2020-11-05-
并发
-并发中的ABA问题.md
)
## 操作系统
...
...
@@ -258,6 +258,8 @@
[
SQL优化记录
](
./docs/_posts/随笔/2020-11-13-随笔-SQL优化记录.md
)
[
快速动态切换JDK版本
](
./docs/_posts/随笔/2020-11-14-随笔-快速动态切换JDK版本.md
)
## 面试
[
杭州邦盛科技面试
](
./docs/_posts/面试/2018-06-01-面试-杭州邦盛科技面试.md
)
...
...
build.gradle
浏览文件 @
25e51f42
...
...
@@ -22,7 +22,12 @@ subprojects {
maven
{
url
"https://plugins.gradle.org/m2/"
}
maven
{
url
"https://repo.maven.apache.org/maven2"
}
mavenLocal
()
maven
{
name
"aliyunmaven"
url
"https://maven.aliyun.com/nexus/content/groups/public/"
}
mavenCentral
()
}
sourceSets
{
...
...
@@ -57,8 +62,8 @@ subprojects {
//because some test write in src/main/java
compile
group:
'junit'
,
name:
'junit'
,
version:
'4.12'
compile
group:
'org.hamcrest'
,
name:
'hamcrest-core'
,
version:
'1.3'
compile
group:
'org.scala-lang'
,
name:
'scala-library'
,
version:
'2.12.
8
'
compile
group:
'org.scala-lang'
,
name:
'scala-reflect'
,
version:
'2.12.
8
'
compile
group:
'org.scala-lang'
,
name:
'scala-library'
,
version:
'2.12.
12
'
compile
group:
'org.scala-lang'
,
name:
'scala-reflect'
,
version:
'2.12.
12
'
compile
group:
'com.diffplug.spotless'
,
name:
'spotless-plugin-gradle'
,
version:
'4.5.0'
compile
group:
'com.google.code.gson'
,
name:
'gson'
,
version:
'2.8.6'
}
...
...
countByAuthors.md
浏览文件 @
25e51f42
...
...
@@ -17,7 +17,7 @@ wkk:=> 37
dreamylost:=> 93
#### 4.Kotlin
dreamylost:=> 3
8
dreamylost:=> 3
9
#### 5.Python
laozhang:=> 59
...
...
docs/_posts/Java虚拟机/2020-10-14-
复习整理
-Java内存模型2.md
→
docs/_posts/Java虚拟机/2020-10-14-
Java虚拟机
-Java内存模型2.md
浏览文件 @
25e51f42
---
title
:
Java内存模型2
categories
:
-
复习整理
-
Java虚拟机
tags
:
[
Java底层
]
description
:
主要介绍为编译器开发人员提供关于JSR-133的一些描述以及一些自己的总结和补充。
---
...
...
docs/_posts/Java虚拟机/2020-10-14-
复习整理
-Java对象的内存布局.md
→
docs/_posts/Java虚拟机/2020-10-14-
Java虚拟机
-Java对象的内存布局.md
浏览文件 @
25e51f42
---
title
:
Java对象的内存布局
categories
:
-
复习整理
-
Java虚拟机
tags
:
[
Java底层
]
description
:
最新的jdk15中Java对象的内存布局。
---
...
...
docs/_posts/Java虚拟机/2020-10-16-
复习整理
-DVM和JVM有什么区别.md
→
docs/_posts/Java虚拟机/2020-10-16-
Java虚拟机
-DVM和JVM有什么区别.md
浏览文件 @
25e51f42
---
title
:
DVM和JVM有什么区别
categories
:
-
复习整理
-
Java虚拟机
tags
:
[
Java底层
]
---
...
...
docs/_posts/Java虚拟机/2020-10-16-
复习整理
-JVM中的方法内联.md
→
docs/_posts/Java虚拟机/2020-10-16-
Java虚拟机
-JVM中的方法内联.md
浏览文件 @
25e51f42
---
title
:
JVM中的方法内联
categories
:
-
复习整理
-
Java虚拟机
tags
:
[
Java底层
]
---
...
...
docs/_posts/Java虚拟机/2020-10-16-
复习整理
-ZGC简介.md
→
docs/_posts/Java虚拟机/2020-10-16-
Java虚拟机
-ZGC简介.md
浏览文件 @
25e51f42
---
title
:
ZGC简介
categories
:
-
复习整理
-
Java虚拟机
tags
:
[
Java底层
]
description
:
可扩展的、实验性的低延迟JVM垃圾收集器
---
...
...
docs/_posts/Java虚拟机/2020-10-16-
复习整理
-最重要的JVM参数指南.md
→
docs/_posts/Java虚拟机/2020-10-16-
Java虚拟机
-最重要的JVM参数指南.md
浏览文件 @
25e51f42
---
title
:
最重要的JVM参数指南
categories
:
-
复习整理
-
Java虚拟机
tags
:
[
Java底层
]
---
...
...
docs/_posts/Java虚拟机/2020-10-19-
复习整理
-Java中的永久代与元空间.md
→
docs/_posts/Java虚拟机/2020-10-19-
Java虚拟机
-Java中的永久代与元空间.md
浏览文件 @
25e51f42
---
title
:
Java中的永久代与元空间
categories
:
-
复习整理
-
Java虚拟机
tags
:
[
Java底层
]
---
...
...
docs/_posts/Java虚拟机/2020-10-19-
复习整理
-Java垃圾收集中如何使用Verbose.md
→
docs/_posts/Java虚拟机/2020-10-19-
Java虚拟机
-Java垃圾收集中如何使用Verbose.md
浏览文件 @
25e51f42
---
title
:
Java垃圾收集中如何使用Verbose
categories
:
-
复习整理
-
Java虚拟机
tags
:
[
Java底层
]
---
...
...
docs/_posts/Java虚拟机/2020-10-26-
复习整理
-常见的垃圾收集器.md
→
docs/_posts/Java虚拟机/2020-10-26-
Java虚拟机
-常见的垃圾收集器.md
浏览文件 @
25e51f42
---
title
:
常见的垃圾收集器
categories
:
-
复习整理
-
Java虚拟机
tags
:
[
Java底层
]
---
...
...
docs/_posts/Scala/2020-07-05-Scala的implicit和implicitly.md
→
docs/_posts/Scala/2020-07-05-Scala
-Scala
的implicit和implicitly.md
浏览文件 @
25e51f42
文件已移动
docs/_posts/Scala/2020-10-17-
复习整理
-Scala所有集合对比.md
→
docs/_posts/Scala/2020-10-17-
Scala
-Scala所有集合对比.md
浏览文件 @
25e51f42
---
title
:
Scala所有集合对比
categories
:
-
复习整理
-
Scala
tags
:
[
Scala
]
---
...
...
docs/_posts/其他/2020-10-27-
复习整理
-Consul和Raft介绍.md
→
docs/_posts/其他/2020-10-27-
其他
-Consul和Raft介绍.md
浏览文件 @
25e51f42
---
title
:
Consul和Raft介绍
categories
:
-
复习整理
-
其他
tags
:
[
consul
]
description
:
介绍Consul与Raft以及Consul和其他常见软件的对比。
---
...
...
docs/_posts/其他/2020-10-27-
复习整理
-Consul领导选举.md
→
docs/_posts/其他/2020-10-27-
其他
-Consul领导选举.md
浏览文件 @
25e51f42
---
title
:
Consul领导选举
categories
:
-
复习整理
-
其他
tags
:
[
consul
]
description
:
介绍Consul领导选举和基本原理。
---
...
...
docs/_posts/其他/2020-10-28-
复习整理
-ProtocolBuffer的原理.md
→
docs/_posts/其他/2020-10-28-
其他
-ProtocolBuffer的原理.md
浏览文件 @
25e51f42
---
title
:
ProtocolBuffer的原理
categories
:
-
复习整理
-
其他
tags
:
[
Java中间件
]
---
...
...
docs/_posts/并发/2020-10-12-
复习整理
-Volatile.md
→
docs/_posts/并发/2020-10-12-
并发
-Volatile.md
浏览文件 @
25e51f42
---
title
:
Volatile
categories
:
-
复习整理
-
并发
tags
:
[
Java并发
]
---
...
...
docs/_posts/并发/2020-10-13-
复习整理
-线程池.md
→
docs/_posts/并发/2020-10-13-
并发
-线程池.md
浏览文件 @
25e51f42
---
title
:
线程池
categories
:
-
复习整理
-
并发
tags
:
[
Java并发
]
---
...
...
docs/_posts/并发/2020-10-20-
复习整理
-ReentrantReadWriteLock.md
→
docs/_posts/并发/2020-10-20-
并发
-ReentrantReadWriteLock.md
浏览文件 @
25e51f42
---
title
:
ReentrantReadWriteLock
categories
:
-
复习整理
-
并发
tags
:
[
Java并发
]
---
...
...
docs/_posts/并发/2020-11-05-
复习整理
-并发中的ABA问题.md
→
docs/_posts/并发/2020-11-05-
并发
-并发中的ABA问题.md
浏览文件 @
25e51f42
---
title
:
并发中的ABA问题
categories
:
-
复习整理
-
并发
tags
:
[
Java并发
]
description
:
在本教程中,我们将在并发编程中介绍ABA问题的理论背景和它的根本原因以及解决方案。
---
...
...
docs/_posts/随笔/2020-11-14-随笔-快速动态切换JDK版本.md
0 → 100644
浏览文件 @
25e51f42
---
title
:
快速动态切换JDK版本
categories
:
随笔
tags
:
[
随笔
]
---
如果已经使用pkg方式安装过了jdk(这种方式安装后直接可用,可执行
`java -version`
),默认会将jdk安装到系统目录,这样java_home就能直接识别出所有已经安装过的jdk,但是如果使用brew等工具,下载的是二进制/压缩包,则需要配置一些环境变量。
比如,brew安装open jdk11时,安装完后就会提醒是否添加软链到系统目录:
`sudo ln -sfn /usr/local/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk`
如果不添加软链则
`/usr/libexec/java_home -v11`
是无效的,会提示找不到jdk11(因为系统的Library目录没有),此时虽然能使用
`java`
命令(
`java -version`
版本为11),但是并不方便我们动态切换jdk版本,并且会覆盖
`/Library/Java/JavaVirtualMachines`
中的其他jdk。
如果不使用软链,则需要找到原始安装位置,时间久了可能就会忘记,放到系统默认的管理位置,不容易出问题。
`/usr/libexec/java_home`
展示的是安装目录,而不是
`whereis java`
找到的java可执行命令的目录(
`/usr/bin/java`
)
下面是流程:
1.
当我们已经使用pkg安装了一个jdk8时,执行
`/usr/libexec/java_home -v1.8`
,会输出
`/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home`
,这表明pkg的jdk会默认被安装到此目录。
2.
使用brew安装open jdk11,执行
`brew install openjdk@11`
。
3.
安装成功后,依照提示添加软链,
`sudo ln -sfn /usr/local/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk`
。
4.
检查是否成功,执行
`/usr/libexec/java_home -v11`
,此时输出
`/Library/Java/JavaVirtualMachines/openjdk-11.jdk/Contents/Home`
。
5.
为两个jdk设置环境变量:
```
# 计算当前版本JDK的安装位置,因为在上面我们已经将2个JDK都放在了 /Library/Java/JavaVirtualMachines/
export JAVA_8_HOME= `/usr/libexec/java_home -v 1.8`
export JAVA_11_HOME= `/usr/libexec/java_home -v 11`
# 设置默认的环境是JDK8
export JAVA_HOME=$JAVA_8_HOME
# 添加两个别名,用来快速更好JDK环境
alias JDK8="export JAVA_HOME=$JAVA_8_HOME"
alias JDK11="export JAVA_HOME=$JAVA_11_HOME"
```
测试:
执行
`JDK8`
,输出:
```
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
```
执行
`JDK11`
,输出:
```
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10)
OpenJDK 64-Bit Server VM (build 11.0.7+10, mixed mode)
```
> 如果是IDEA环境,切换JDK后,terminal需要关闭然后再打开。
\ No newline at end of file
kotlin-leetcode/src/main/kotlin/io/github/dreamylost/Leetcode_1122.kt
0 → 100644
浏览文件 @
25e51f42
/* Licensed under Apache-2.0 @梦境迷离 */
package
io.github.dreamylost
/**
* 1122. 数组的相对排序
* 给你两个数组,arr1 和 arr2,
* 1.arr2 中的元素各不相同
* 2.arr2 中的每个元素都出现在 arr1 中
* 对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。
* @see [[https://github.com/jxnu-liguobin]]
* @author 梦境迷离
* @since 2020-11-14
* @version 1.0
*/
class
Leetcode_1122
{
companion
object
{
/**
* 188 ms,100.00%
* 34.3 MB,57.14%
* 计数排序
* 1.记录arr1的元素的次数
* 2.恢复arr2中存在的arr1的元素
* 3.恢复arr2中不存在的arr1的元素
*/
fun
relativeSortArray
(
arr1
:
IntArray
,
arr2
:
IntArray
):
IntArray
{
val
valuesCount
=
Array
(
1001
)
{
0
}
arr1
.
forEach
{
valuesCount
[
it
]
+=
1
}
var
idx
=
0
arr2
.
forEach
{
e
->
while
(
valuesCount
[
e
]
>
0
)
{
valuesCount
[
e
]
-=
1
arr1
[
idx
++]
=
e
}
}
for
(
i
in
0
until
valuesCount
.
size
)
while
(
valuesCount
[
i
]
>
0
)
{
valuesCount
[
i
]
-=
1
arr1
[
idx
++]
=
i
}
return
arr1
}
@JvmStatic
fun
main
(
args
:
Array
<
String
>)
{
val
arr1
=
arrayOf
(
2
,
3
,
1
,
3
,
2
,
4
,
6
,
7
,
9
,
2
,
19
)
val
arr2
=
arrayOf
(
2
,
1
,
4
,
3
,
9
,
6
)
val
ret
=
relativeSortArray
(
arr1
.
toIntArray
(),
arr2
.
toIntArray
())
ret
.
forEach
{
print
(
it
)
}
}
}
}
kotlin-leetcode/src/main/kotlin/io/github/dreamylost/dreamylost.md
浏览文件 @
25e51f42
...
...
@@ -37,4 +37,8 @@
*
[
971. 翻转二叉树以匹配先序遍历
](
./Leetcode_971.kt
)
Medium
*
[
1372. 二叉树中的最长交错路径
](
./Leetcode_1372.kt
)
Medium
*
[
1466. 重新规划路线
](
./Leetcode_1466.kt
)
Medium
*
[
1609. 奇偶树
](
./Leetcode_1609.kt
)
Medium
\ No newline at end of file
*
[
1609. 奇偶树
](
./Leetcode_1609.kt
)
Medium
### 每日一题
*
[
1122. 数组的相对排序
](
./Leetcode_1122.kt
)
Easy
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录