leecode刷题第一页
1、两数之和
func twoSum(nums []int, target int) []int {
var res = make([]int,2)
for i:=0;i<len(nums);i++{
other:= target-nums[i]
for j:=i+1;j<len(nums);j++{
if other==nums[j]{
res[0] = i
res[1] = j
return res
}
}
}
return res
}
func twoSum(nums []int, target int) []int {
var res = make([]int,2)
var mapTemp = make(map[int]int,100)
for i:=0;i<len(nums);i++{
mapTemp[nums[i]]=i
}
for i:=0;i<len(nums);i++{
other:= target-nums[i]
v,ok:=mapTemp[other]
if ok{
if v!=i{
res[0] = i
res[1] = v
return res
}
}
}
return res
}
2、两数相加
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
var res = l1
var pre = l1
var filter = l1
for l1!=nil&&l2!=nil{
l1.Val = l1.Val +l2.Val
pre = l1
l1 = l1.Next
l2 = l2.Next
}
for l2!=nil{
temp:= new(ListNode)
temp.Val = l2.Val
pre.Next = temp
pre= pre.Next
l2 = l2.Next
}
for filter!=nil{
if filter.Val >=10{
if filter.Next !=nil{
filter.Next.Val = filter.Next.Val+1
filter.Val = filter.Val-10
}else {
temp:= new(ListNode)
temp.Val = 1
filter.Val = filter.Val-10
filter.Next = temp
}
}
filter = filter.Next
}
return res
}
最长字符串长度
func lengthOfLongestSubstring(s string) int {
s2:=""
tempMap := make(map[string]bool)
j:=0
i:=0
for ;i<len(s);i++{
_,ok:=tempMap[string(s[i])]
if ok {
for ;j<i;j++{
if s[i] ==s[j]{
j++
if len(s[j:i+1])>=len(s2){
s2=s[j:i+1]
}
break
}else {
delete(tempMap,string(s[j]))
}
}
}else {
tempMap[string(s[i])] =true
if len(s[j:i+1])>=len(s2){
s2=s[j:i+1]
}
}
}
return len(s2)
}