老实人开始做leetcodes

老实人开始做leetcodes

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

func twoSum(nums []int, target int) []int {
    for i:=0; i<len(nums); i++{
        for k, v := range nums {
            if k == i {
                continue
            }
            if v + nums[i] == target {
                return []int{i, k}
            }
        }
    }
    return nil
}

第一题,用了两个for做了出来,一看答案。。好吧。用hashtable高速完成,显得自己十分low

重点第二题来了。。

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
    l1NumString := fmt.Sprint(l1.Val)
    for  {
        if l1 = l1.Next; l1 == nil {
            break
        }
        l1NumString = fmt.Sprint(l1.Val) + l1NumString
    }
    l2NumString := fmt.Sprint(l2.Val)
    for  {
        if l2 = l2.Next; l2 == nil {
            break
        }
        l2NumString = fmt.Sprint(l2.Val) + l2NumString
    }
    l1NumUint64, _ := strconv.ParseUint(l1NumString, 10, 64)
    l2NumUint64, _ := strconv.ParseUint(l2NumString, 10, 64)
    finalNum := l1NumUint64 + l2NumUint64
    fmt.Println(l1NumUint64)
    fmt.Println(l1NumString)
    var digits []uint64
    if finalNum == 0 {
        digits = append(digits, 0)
    }
    for finalNum > 0 {
        digit := finalNum % 10
        digits = append([]uint64{digit}, digits...)
        finalNum /= 10
    }
    
    var aaa = []*ListNode{}
    // digits = [1,2,3]
    // aaa = [3,2,1]
    fmt.Println(len(digits))
    for i:= len(digits)-1; i>=0; i-- {
        currentIndexNode := &ListNode{
            Val: int(digits[i]),
            Next: nil,
        }
        
        if i == len(digits)-1 {
            aaa= append(aaa,currentIndexNode)
            continue
        }
        if i==0 {
            aaa[len(aaa)-1].Next = currentIndexNode
            aaa= append(aaa,currentIndexNode)
            fmt.Println(aaa)
            return aaa[0]
        }
        aaa[len(aaa)-1].Next = currentIndexNode
        aaa = append(aaa,currentIndexNode)
        
    }
    return aaa[0]
}

老实人乖乖的将数字相加,测试例子直到[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
golang自身的int已经不够用。。。完美躺枪。。后续做题还是要想好这些int坑。。做好后续准备。。明天再战。。keep up

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇