Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit80a0222

Browse files
committed
add new files
1 parent26feb5f commit80a0222

7 files changed

+193
-0
lines changed

‎33. Search in Rotated Sorted Array.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package main
2+
3+
funcsearch(nums []int,targetint)int {
4+
lo:=0
5+
hi:=len(nums)-1
6+
7+
forlo<hi {
8+
mid:= (lo+hi)/2
9+
ifnums[mid]==target {
10+
returnmid
11+
}
12+
ifnums[lo]<=nums[mid] {
13+
iftarget>=nums[lo]&&target<nums[mid] {
14+
hi=mid-1
15+
}else {
16+
lo=mid+1
17+
}
18+
}else {
19+
iftarget>nums[mid]&&target<=nums[hi] {
20+
lo=mid+1
21+
}else {
22+
hi=mid-1
23+
}
24+
}
25+
26+
}
27+
ifnums[lo]==target {
28+
returnlo
29+
}else {
30+
return-1
31+
}
32+
}

‎35. Search Insert Position.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package main
2+
3+
funcsearchInsert(nums []int,targetint)int {
4+
iftarget<nums[0] {
5+
return0
6+
}
7+
l:=len(nums)
8+
iftarget>nums[l-1] {
9+
returnl
10+
}
11+
left,right:=0,l-1
12+
forleft<=right {
13+
m:= (left+right)/2
14+
ifnums[m]>target {
15+
right=m-1
16+
ifright>=0 {
17+
ifnums[right]<target {
18+
returnright+1
19+
}
20+
}else {
21+
return0
22+
}
23+
}elseifnums[m]<target {
24+
left=m+1
25+
ifleft<l {
26+
ifnums[left]>target {
27+
returnleft
28+
}
29+
}else {
30+
returnl
31+
}
32+
}else {
33+
returnm
34+
}
35+
}
36+
return0
37+
}

‎38. Count and Say.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package main
2+
3+
import (
4+
"strconv"
5+
)
6+
7+
funccountAndSay(nint)string {
8+
ifn==1 {
9+
return"1"
10+
}
11+
returncount(countAndSay(n-1))
12+
}
13+
14+
funccount(sstring)string {
15+
c:=string(s[0])
16+
count:=1
17+
res:=""
18+
for_,char:=ranges[1:] {
19+
ifstring(char)==c {
20+
count+=1
21+
}else {
22+
res=res+strconv.Itoa(count)+string(c)
23+
c=string(char)
24+
count=1
25+
}
26+
}
27+
res=res+strconv.Itoa(count)+string(c)
28+
returnres
29+
}

‎53. Maximum Subarray.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package main
2+
3+
funcmaxSubArray(nums []int)int {
4+
cur:=nums[0]
5+
sum:=nums[0]
6+
fori:=1;i<len(nums);i++ {
7+
ifsum>=0 {
8+
sum+=nums[i]
9+
}else {
10+
sum=nums[i]
11+
}
12+
ifcur<sum {
13+
cur=sum
14+
}
15+
}
16+
returncur
17+
}

‎56. Merge Intervals.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package main
2+
3+
import (
4+
"sort"
5+
)
6+
7+
typeIntervalstruct {
8+
Startint
9+
Endint
10+
}
11+
12+
funcmerge(intervals []Interval) []Interval {
13+
l:=len(intervals)
14+
var (
15+
starts []int
16+
ends []int
17+
res []Interval
18+
)
19+
for_,v:=rangeintervals {
20+
starts=append(starts,v.Start)
21+
ends=append(ends,v.End)
22+
}
23+
sort.Ints(starts)
24+
sort.Ints(ends)
25+
fori,j:=0,0;i<l;i++ {
26+
ifi==l-1||starts[i+1]>ends[i] {//中间出现了不连续,记录前一个连续值
27+
res=append(res,Interval{Start:starts[j],End:ends[i]})
28+
j=i+1
29+
}
30+
}
31+
returnres
32+
}

‎58. Length of Last Word.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package main
2+
3+
import (
4+
"strings"
5+
)
6+
7+
funclengthOfLastWord(sstring)int {
8+
arr:=strings.Split(strings.Trim(s," ")," ")
9+
length:=len(arr)
10+
res:=0
11+
fori:=length-1;i>=0;i-- {
12+
ifarr[i]==" " {
13+
continue
14+
}else {
15+
res=len(arr[i])
16+
break
17+
}
18+
}
19+
returnres
20+
}

‎61. Rotate List.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package main
2+
3+
typeListNodestruct {
4+
Valint
5+
Next*ListNode
6+
}
7+
8+
funcrotateRight(head*ListNode,kint)*ListNode {
9+
ifhead==nil||head.Next==nil||k==0 {
10+
returnhead
11+
}
12+
len:=1
13+
tail:=head
14+
fortail.Next!=nil {
15+
tail=tail.Next
16+
len++
17+
}
18+
tail.Next=head//变成一个环
19+
k=k%len//因为是个环,所以不用转超过一圈
20+
fori:=0;i<len-k;i++ {
21+
tail=tail.Next
22+
}
23+
head=tail.Next
24+
tail.Next=nil
25+
returnhead
26+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp