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)
}
posted on 2019-12-11 10:04  清浊  阅读(227)  评论(0)    收藏  举报