Skip to content

Commit 65dc280

Browse files
committed
add new files
1 parent 80a0222 commit 65dc280

6 files changed

+118
-0
lines changed

66. Plus One.go

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package main
2+
3+
func plusOne(digits []int) []int {
4+
5+
l := len(digits)
6+
for i := l - 1; i >= 0; i-- {
7+
if digits[i] < 9 {
8+
digits[i]++
9+
return digits
10+
}
11+
digits[i] = 0
12+
}
13+
//如果有进位
14+
res := []int{1}
15+
res = append(res, digits...)
16+
return res
17+
}

70. Climbing Stairs.go

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package main
2+
3+
//DP
4+
func climbStairs(n int) int {
5+
if n < 2 {
6+
return 1
7+
}
8+
tmp := []int{1, 2}
9+
for i := 2; i < n; i++ {
10+
tmp = append(tmp, tmp[i-1]+tmp[i-2])
11+
}
12+
return tmp[n-1]
13+
}

77. Combinations.go

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package main
2+
3+
func combine(n int, k int) [][]int {
4+
var res [][]int
5+
helper(&res, []int{}, 1, n, k)
6+
return res
7+
}
8+
9+
func helper(res *[][]int, coms []int, start int, n int, k int) {
10+
if k == 0 {
11+
tmp := []int{}
12+
tmp = append(tmp, coms...)
13+
*res = append(*res, tmp)
14+
return
15+
}
16+
for i := start; i <= n; i++ {
17+
coms = append(coms, i)
18+
helper(res, coms, i+1, n, k-1)
19+
coms = coms[:len(coms)-1]
20+
}
21+
}
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package main
2+
3+
type ListNode struct {
4+
Val int
5+
Next *ListNode
6+
}
7+
8+
func deleteDuplicates(head *ListNode) *ListNode {
9+
cur := head
10+
for cur != nil && cur.Next != nil {
11+
if cur.Next.Val == cur.Val {
12+
cur.Next = cur.Next.Next
13+
} else {
14+
cur = cur.Next
15+
}
16+
}
17+
return head
18+
}

86. Partition List.go

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
type ListNode struct {
4+
Val int
5+
Next *ListNode
6+
}
7+
8+
//新建两个列表
9+
func partition(head *ListNode, x int) *ListNode {
10+
11+
beforehead := &ListNode{}
12+
before := beforehead
13+
afterhead := &ListNode{}
14+
after := afterhead
15+
for head != nil {
16+
if head.Val < x {
17+
before.Next = head
18+
before = before.Next
19+
} else {
20+
after.Next = head
21+
after = after.Next
22+
}
23+
head = head.Next
24+
}
25+
after.Next = nil
26+
before.Next = afterhead.Next
27+
return beforehead.Next
28+
}

88. Merge Sorted Array.go

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package main
2+
3+
func merge(nums1 []int, m int, nums2 []int, n int) {
4+
for m > 0 || n > 0 {
5+
if n == 0 {
6+
break
7+
}
8+
if m == 0 {
9+
nums1[n-1] = nums2[n-1]
10+
n--
11+
continue
12+
}
13+
if nums1[m-1] > nums2[n-1] {
14+
nums1[m+n-1] = nums1[m-1]
15+
m--
16+
} else {
17+
nums1[m+n-1] = nums2[n-1]
18+
n--
19+
}
20+
}
21+
}

0 commit comments

Comments
 (0)