国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

從零開(kāi)始的力扣刷題記錄-第四十二天

這篇具有很好參考價(jià)值的文章主要介紹了從零開(kāi)始的力扣刷題記錄-第四十二天。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1790. 僅執(zhí)行一次字符串交換能否使兩個(gè)字符串相等-簡(jiǎn)單

題目描述:
給你長(zhǎng)度相等的兩個(gè)字符串 s1 和 s2 。一次 字符串交換 操作的步驟如下:選出某個(gè)字符串中的兩個(gè)下標(biāo)(不必不同),并交換這兩個(gè)下標(biāo)所對(duì)應(yīng)的字符。
如果對(duì) 其中一個(gè)字符串 執(zhí)行 最多一次字符串交換 就可以使兩個(gè)字符串相等,返回 true ;否則,返回 false 。

題解:
前面做過(guò)一道和這個(gè)題一樣的,區(qū)別就是那個(gè)題必須強(qiáng)制交換一次,所以相等的時(shí)候返回值不一樣,其他一模一樣

代碼(Go):

func areAlmostEqual(s1 string, s2 string) bool {
    if s1 == s2{
        return true
    }
    if len(s1) != len(s2){
        return false
    }
    temp := 0
    p,q := 0,0
    for i := 0;i < len(s1);i++{
        if s1[i] != s2[i]{
            temp++
            if temp == 1{
                p = i
            }else{
                q = i
            }
        }
        if temp > 2{
            return false
        }
    }
    if temp == 2{
        if s1[p] == s2[q] && s1[q] == s2[p]{
            return true
        }
    }
    return false
}

1800. 最大升序子數(shù)組和-簡(jiǎn)單

題目描述:
給你一個(gè)正整數(shù)組成的數(shù)組 nums ,返回 nums 中一個(gè) 升序 子數(shù)組的最大可能元素和。
子數(shù)組是數(shù)組中的一個(gè)連續(xù)數(shù)字序列。
已知子數(shù)組 [numsl, numsl+1, …, numsr-1, numsr] ,若對(duì)所有 i(l <= i < r),numsi < numsi+1 都成立,則稱(chēng)這一子數(shù)組為 升序 子數(shù)組。注意,大小為 1 的子數(shù)組也視作 升序 子數(shù)組。

題解:
遍歷一次數(shù)組,遇到降序就從零開(kāi)始計(jì)算temp,遇到升序就累加到temp中,最后比較temp與max的大小,把大數(shù)保存起來(lái)??戳斯俜筋}解才發(fā)現(xiàn)這是動(dòng)態(tài)規(guī)劃的思想

代碼(Go):

func maxAscendingSum(nums []int) int {
    temp := nums[0]
    max := temp
    for i := 1;i < len(nums);i++{
        if nums[i] > nums[i - 1]{
            temp += nums[i]
        }else{
            temp = nums[i]
        }
        if temp > max{
            max = temp
        }
    }
    return max
}

1748. 唯一元素的和-簡(jiǎn)單

題目描述:
給你一個(gè)整數(shù)數(shù)組 nums 。數(shù)組中唯一元素是那些只出現(xiàn) 恰好一次 的元素。
請(qǐng)你返回 nums 中唯一元素的 和 。

題解:
哈希表記錄出現(xiàn)次數(shù),遍歷哈希表將出現(xiàn)次數(shù)為1的數(shù)加起來(lái)。官方題解還可以再優(yōu)化,遍歷數(shù)組時(shí)第一次遇到一個(gè)數(shù)就加起來(lái),如果后續(xù)再遇到這個(gè)數(shù)就減掉,這個(gè)方法只需要遍歷一次數(shù)組不需要遍歷哈希表

代碼(Go):

func sumOfUnique(nums []int) int {
    dict := map[int]int{}
    for _,v := range nums{
        if _,ok := dict[v];ok{
            dict[v]++
        }else{
            dict[v] = 1
        }
    }
    sum := 0
    for i,v := range dict{
        if v == 1{
            sum += i
        }
    }
    return sum
}

1110. 刪點(diǎn)成林-中等

題目描述:
給出二叉樹(shù)的根節(jié)點(diǎn) root,樹(shù)上每個(gè)節(jié)點(diǎn)都有一個(gè)不同的值。
如果節(jié)點(diǎn)值在 to_delete 中出現(xiàn),我們就把該節(jié)點(diǎn)從樹(shù)上刪去,最后得到一個(gè)森林(一些不相交的樹(shù)構(gòu)成的集合)。
返回森林中的每棵樹(shù)。你可以按任意順序組織答案。

題解:
判斷節(jié)點(diǎn)是否需要被刪除如果需要被刪除,則遞歸判斷它的兩個(gè)子節(jié)點(diǎn),并且兩個(gè)子節(jié)點(diǎn)可能加入節(jié)點(diǎn)序列,若不需要?jiǎng)h除依舊遞歸遍歷它的兩個(gè)子節(jié)點(diǎn),但是子節(jié)點(diǎn)不能加入節(jié)點(diǎn)序列

代碼(Go):

func delNodes(root *TreeNode, to_delete []int) []*TreeNode {
    re := []*TreeNode{}
    var delNode func(root *TreeNode,to_delete []int,add int)
    delNode = func(root *TreeNode,to_delete []int,add int){
        if inDelete(root.Val,to_delete){
            if root.Left != nil{
                delNode(root.Left,to_delete,1)
            }
            if root.Right != nil{
                delNode(root.Right,to_delete,1)
            }
        }else{
            if root.Left != nil{
                delNode(root.Left,to_delete,0)
                if inDelete(root.Left.Val,to_delete){
                    root.Left = nil
                }
            }
            if root.Right != nil{
                delNode(root.Right,to_delete,0)
                if inDelete(root.Right.Val,to_delete){
                    root.Right = nil
                }
            }
            if add == 1{
                re = append(re,root)
            }
        }
    }
    delNode(root,to_delete,1)
    return re
}

func inDelete(i int,to_delete []int) bool {
    for _,v := range to_delete{
        if v == i{
            return true
        }
    }
    return false
}

總結(jié)

簡(jiǎn)單題提交數(shù)1000以上的題已經(jīng)做遍了,接下來(lái)還有一些重復(fù)的題和提交數(shù)比較少的題,本來(lái)是想的開(kāi)始一天兩道中等題,但是最近比較忙,所以先繼續(xù)一天3道,等忙完這陣就開(kāi)始加到兩道中等題文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-464554.html

到了這里,關(guān)于從零開(kāi)始的力扣刷題記錄-第四十二天的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 從零開(kāi)始的力扣刷題記錄-第五十八天

    題目描述: 給你一個(gè) 不包含 任何零的整數(shù)數(shù)組 nums ,找出自身與對(duì)應(yīng)的負(fù)數(shù)都在數(shù)組中存在的最大正整數(shù) k 。 返回正整數(shù) k ,如果不存在這樣的整數(shù),返回 -1 。 題解: 哈希表存儲(chǔ)負(fù)數(shù),再遍歷nums對(duì)每一個(gè)正數(shù)去哈希表中查找是否存在對(duì)應(yīng)的負(fù)數(shù)。存在就更新返回值 代碼

    2024年02月09日
    瀏覽(23)
  • 從零開(kāi)始的力扣刷題記錄-第八十七天

    題目描述: 給你一個(gè)二叉樹(shù)的根節(jié)點(diǎn) root ,樹(shù)中每個(gè)節(jié)點(diǎn)都存放有一個(gè) 0 到 9 之間的數(shù)字。 每條從根節(jié)點(diǎn)到葉節(jié)點(diǎn)的路徑都代表一個(gè)數(shù)字: 例如,從根節(jié)點(diǎn)到葉節(jié)點(diǎn)的路徑 1 - 2 - 3 表示數(shù)字 123 。 計(jì)算從根節(jié)點(diǎn)到葉節(jié)點(diǎn)生成的 所有數(shù)字之和 。 葉節(jié)點(diǎn) 是指沒(méi)有子節(jié)點(diǎn)的節(jié)點(diǎn)

    2024年02月07日
    瀏覽(31)
  • 從零開(kāi)始的力扣刷題記錄-第七十二天

    題目描述: 給你一個(gè)整數(shù)數(shù)組 nums ,它包含 2 * n 個(gè)整數(shù)。 你需要將 nums 劃分成 n 個(gè)數(shù)對(duì),滿足: 每個(gè)元素 只屬于一個(gè) 數(shù)對(duì)。 同一數(shù)對(duì)中的元素 相等 。 如果可以將 nums 劃分成 n 個(gè)數(shù)對(duì),請(qǐng)你返回 true ,否則返回 false 題解: 哈希表統(tǒng)計(jì)各元素?cái)?shù)量,如果有不能被2整除的就

    2024年02月11日
    瀏覽(24)
  • 從零開(kāi)始的力扣刷題記錄-第三十九天

    題目描述: 給定一個(gè) 無(wú)重復(fù)元素 的 有序 整數(shù)數(shù)組 nums 。 返回 恰好覆蓋數(shù)組中所有數(shù)字 的 最小有序 區(qū)間范圍列表 。也就是說(shuō),nums 的每個(gè)元素都恰好被某個(gè)區(qū)間范圍所覆蓋,并且不存在屬于某個(gè)范圍但不屬于 nums 的數(shù)字 x 。 列表中的每個(gè)區(qū)間范圍 [a,b] 應(yīng)該按如下格式輸

    2024年02月06日
    瀏覽(26)
  • 從零開(kāi)始的力扣刷題記錄-第五十一天

    題目描述: 給你一棵二叉搜索樹(shù)的 root ,請(qǐng)你 按中序遍歷 將其重新排列為一棵遞增順序搜索樹(shù),使樹(shù)中最左邊的節(jié)點(diǎn)成為樹(shù)的根節(jié)點(diǎn),并且每個(gè)節(jié)點(diǎn)沒(méi)有左子節(jié)點(diǎn),只有一個(gè)右子節(jié)點(diǎn)。 題解: 中序遍歷存儲(chǔ)節(jié)點(diǎn)后按順序連接即可 代碼(Go): 題目描述: 小扣在秋日市集發(fā)

    2024年02月08日
    瀏覽(25)
  • 從零開(kāi)始的力扣刷題記錄-第六十四天

    題目描述: 給你一個(gè)下標(biāo)從 0 開(kāi)始的整數(shù)數(shù)組 nums 。在一步操作中,你可以執(zhí)行以下步驟: 從 nums 選出 兩個(gè) 相等的 整數(shù) 從 nums 中移除這兩個(gè)整數(shù),形成一個(gè) 數(shù)對(duì) 請(qǐng)你在 nums 上多次執(zhí)行此操作直到無(wú)法繼續(xù)執(zhí)行。 返回一個(gè)下標(biāo)從 0 開(kāi)始、長(zhǎng)度為 2 的整數(shù)數(shù)組 answer 作為答

    2024年02月11日
    瀏覽(24)
  • 從零開(kāi)始的力扣刷題記錄-第六十一天

    題目描述: 給定由一些正數(shù)(代表長(zhǎng)度)組成的數(shù)組 nums ,返回 由其中三個(gè)長(zhǎng)度組成的、面積不為零的三角形的最大周長(zhǎng) 。如果不能形成任何面積不為零的三角形,返回 0。 題解: 排序后從后往前遍歷,取最大的三個(gè)邊,如果滿足兩邊之和大于第三邊則返回,否則整體向前

    2024年02月09日
    瀏覽(25)
  • 【從零開(kāi)始學(xué)習(xí)JAVA | 第四十五篇】反射

    【從零開(kāi)始學(xué)習(xí)JAVA | 第四十五篇】反射

    目錄 前言: ?反射: ?使用反射的步驟: 1.獲取階段: 2.使用階段: 反射的應(yīng)用場(chǎng)景: 使用反射的優(yōu)缺點(diǎn): 總結(jié): Java中的反射是一項(xiàng)強(qiáng)大而靈活的功能,它允許程序在運(yùn)行時(shí) 動(dòng)態(tài)地獲取、操作和利用類(lèi)的信息 。通過(guò)反射,我們可以在運(yùn)行時(shí)檢查和修改類(lèi)的屬性、調(diào)用類(lèi)

    2024年02月13日
    瀏覽(90)
  • 【從零開(kāi)始學(xué)習(xí)JAVA | 第四十篇】了解線程池

    【從零開(kāi)始學(xué)習(xí)JAVA | 第四十篇】了解線程池

    目錄 前言: 線程池: 線程池的工作流程: 代碼實(shí)現(xiàn)線程池: 任務(wù)拒絕策略:? 線程池多大才算合適? 總結(jié): ????????在Java編程中,線程池是一個(gè)強(qiáng)大的工具,它能夠管理和復(fù)用線程,提供高效的并發(fā)處理能力。通過(guò)線程池,我們可以有效地控制并發(fā)線程的數(shù)量,并降

    2024年02月13日
    瀏覽(22)
  • 【從零開(kāi)始學(xué)習(xí)JAVA | 第四十六篇】處理請(qǐng)求參數(shù)

    【從零開(kāi)始學(xué)習(xí)JAVA | 第四十六篇】處理請(qǐng)求參數(shù)

    ? ? ? ? 在我們之前的學(xué)習(xí)中,我們已經(jīng)基本學(xué)習(xí)完了JAVA的基礎(chǔ)內(nèi)容,從今天開(kāi)始我們就逐漸進(jìn)入到JAVA的時(shí)間,在這一大篇章,我們將對(duì)前后端有一個(gè)基本的認(rèn)識(shí),并要學(xué)習(xí)如何成為一名合格的后端工程師。今天我們介紹的內(nèi)容是:如何在后端處理前端的請(qǐng)求 目錄 前言:

    2024年02月11日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包