Skip to content

Commit faa3069

Browse files
committed
imrove 674
1 parent 936a7a3 commit faa3069

File tree

4 files changed

+140
-22
lines changed

4 files changed

+140
-22
lines changed

GoLang.md

+28-22
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
# Golang 是一个非常强大的语言 很棒
12

2-
### Golang 是一个非常强大的语言 很棒!
33
Go 语言接受了函数式编程的一些想法,支持匿名函数与闭包。再如,Go 语言接受了以 ErLang 语言为代表的面向消息编程思想,支持 goroutine 和通道,并推荐使用消息而不是共享内存来进行并发编程。总体来说,Go 语言是一个非常现代化的语言,精小但非常强大。
44

5-
### Golang 最主要的特性:
5+
## Golang 最主要的特性:
6+
67
- 自动垃圾回收
78
- 更丰富的内置类型
89
- 函数多返回值
@@ -13,56 +14,61 @@ Go 语言接受了函数式编程的一些想法,支持匿名函数与闭包
1314
- 反射
1415
- 语言交互性
1516

16-
### Golang 适合用来做什么
17-
- **服务器编程** 以前如果使用`C`或者`C++`做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
17+
## Golang 适合用来做什么
18+
19+
- **服务器编程** 以前如果使用`C`或者`C++`做的那些事情,用 Go 来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
1820
- **分布式系统** 数据库代理器等
19-
- **网络编程** 这一块目前应用最广,包括Web应用、API应用、下载应用、
20-
- **内存数据库** 前一段时间 google 开发的 groupCache,couchBase的部分组建
21-
- **云平台** 目前国外很多云平台在采用`Go`开发,`CloudFoundy`的部分组建,前`VMare`的技术总监自己出来搞的apcera云平台。
21+
- **网络编程** 这一块目前应用最广,包括 Web 应用、API 应用、下载应用、
22+
- **内存数据库** 前一段时间 google 开发的 groupCache,couchBase 的部分组建
23+
- **云平台** 目前国外很多云平台在采用`Go`开发,`CloudFoundy`的部分组建,前`VMare`的技术总监自己出来搞的 apcera 云平台。
24+
25+
## Golang 语言的基础
2226

23-
### Golang 语言的基础
2427
- 包声明
2528
- 引入包
2629
- 函数
2730
- 变量
2831
- 语句 & 表达式
2932
- 注释
3033

31-
### Golang 的25个关键字
34+
## Golang 的 25 个关键字
35+
3236
| break | default | func | interface | select |
3337
| :------: | :---------: | :----: | :-------: | :----: |
3438
| case | defer | go | map | struct |
3539
| chan | else | goto | package | switch |
3640
| const | fallthrough | if | range | type |
3741
| continue | for | import | return |
3842

39-
### Golang 的基本类型
40-
| name | 名字 | | | | |
43+
## Golang 的基本类型
44+
45+
| name | 名字 | | | | |
4146
| :-------: | :---------: | :-------------------: | :----: | :----: | :-----: |
42-
| bool | 布尔值 | | | | |
43-
| string | 字符串 |
47+
| bool | 布尔值 | | | | |
48+
| string | 字符串 |
4449
| int | int8 | int16 | int32 | int64 |
4550
| uint | uint8 | uint16 | uint32 | uint64 | uintptr |
4651
| float32 | float64 | 小数/浮点数 |
4752
| complex64 | complete128 | 复数 |
48-
| byte | uint8别名 |
49-
| rune | int32别名 | 表示一个 Unicode 码点 |
53+
| byte | uint8 别名 |
54+
| rune | int32 别名 | 表示一个 Unicode 码点 |
55+
56+
## fmt 基础库
5057

51-
### fmt 基础库
52-
- **Print**
58+
- **Print**
5359
it will print number variables, and will not include a line break at the end.
5460
它会打印数字变量,但是将不会包括一行的尾部断点.
55-
- **Printf**
61+
- **Printf**
5662
it will not print number variables, and will not include a line break at the end.
5763
它将不会打印数字变量, 并且将不会包括一行的尾部断点.
58-
- **Println**
64+
- **Println**
5965
it will print number variables, and will include a line break at the end.
6066
它将会打印数字变量,并且将会包括一行尾部的断行.
6167

68+
## 神坑
6269

70+
大概因为数组容量为 2,
6371

64-
### 神坑
65-
大概因为数组容量为2,
6672
```go
6773
var a [2]int = [2]int{1, 2}
6874
var b = a
@@ -73,4 +79,4 @@ b[0]++ // a 同时也会改变
7379
var a []int = []int{1, 2}
7480
var b = a
7581
b[0]++ // a 不会跟着改变
76-
```
82+
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# [674. Longest Continuous Increasing Subsequence](https://leetcode.com/problems/longest-continuous-increasing-subsequence/)
2+
3+
## 2019/05/02
4+
5+
### 推荐程度
6+
7+
👍421 👎91
8+
9+
### 题目 💗[easy]
10+
11+
Given an unsorted array of integers, find the length of longest continuous increasing subsequence (subarray).
12+
13+
---
14+
15+
给定一个未排序整数数组,找到长度最长的.持续自增的截取数组
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package findLengthOfLCIS
2+
3+
func findLengthOfLCIS(nums []int) int {
4+
if len(nums) == 0 {
5+
return 0
6+
}
7+
res := 1
8+
for i := range nums {
9+
res = max(res, fromBeginIncNum(nums[i:]))
10+
}
11+
return res
12+
}
13+
14+
func fromBeginIncNum(nums []int) int {
15+
for i := 1; i < len(nums); i++ {
16+
if nums[i-1] >= nums[i] {
17+
return i
18+
}
19+
}
20+
return len(nums)
21+
}
22+
23+
func max(a, b int) int {
24+
if a > b {
25+
return a
26+
} else {
27+
return b
28+
}
29+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package findLengthOfLCIS
2+
3+
import (
4+
"testing"
5+
6+
"github.com/stretchr/testify/assert"
7+
)
8+
9+
type para struct {
10+
one []int
11+
}
12+
13+
type ans struct {
14+
one int
15+
}
16+
17+
type question struct {
18+
p para
19+
a ans
20+
}
21+
22+
func Test_OK(t *testing.T) {
23+
ast := assert.New(t)
24+
25+
qs := []question{
26+
question{
27+
p: para{
28+
one: []int{},
29+
},
30+
a: ans{
31+
one: 0,
32+
},
33+
},
34+
question{
35+
p: para{
36+
one: []int{1, 3, 5, 4, 7},
37+
},
38+
a: ans{
39+
one: 3,
40+
},
41+
},
42+
question{
43+
p: para{
44+
one: []int{2, 2, 2, 2, 2, 2},
45+
},
46+
a: ans{
47+
one: 1,
48+
},
49+
},
50+
51+
question{
52+
p: para{
53+
one: []int{1, 3, 5, 7},
54+
},
55+
a: ans{
56+
one: 4,
57+
},
58+
},
59+
}
60+
61+
for _, q := range qs {
62+
a, p := q.a, q.p
63+
ast.Equal(a.one, findLengthOfLCIS(p.one), "输入:%v", p)
64+
}
65+
66+
// ast.Panics(func() { longestPalindrome([]int{}, []int{}) }, "对空切片求中位数,却没有panic")
67+
68+
}

0 commit comments

Comments
 (0)