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

【Leetcode每日一題】模擬 - 數(shù)青蛙(難度??)(54)

這篇具有很好參考價值的文章主要介紹了【Leetcode每日一題】模擬 - 數(shù)青蛙(難度??)(54)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 題目解析

題目鏈接:1419. 數(shù)青蛙

【Leetcode每日一題】模擬 - 數(shù)青蛙(難度??)(54),算法,leetcode每日一題,leetcode,算法,職場和發(fā)展,c++

這個問題的理解其實相當簡單,只需看一下示例,基本就能明白其含義了。

2.算法原理

一、模擬青蛙叫聲的基本邏輯

在模擬青蛙叫聲的過程中,我們需要遵循一定的規(guī)則來判斷何時青蛙會發(fā)出聲音。具體規(guī)則如下:

  1. 當遇到字符序列 'r'、'o'、'a'、'k' 時,我們需要檢查每個字符之前是否已經(jīng)有青蛙發(fā)出叫聲。這是因為青蛙的叫聲需要按照一定的順序來觸發(fā),如果前面的字符沒有被青蛙喊出,那么當前字符也無法被喊出。

  2. 對于字符 'r'、'o'、'a'、'k' 的檢查,我們需要回溯到每個字符的前一個字符,查看是否有青蛙已經(jīng)發(fā)出了叫聲。如果有,則當前字符可以被青蛙喊出;否則,我們需要直接返回 -1,表示無法模擬出青蛙的叫聲。

  3. 當遇到字符 'c' 時,情況稍有不同。我們需要特別檢查字符 'k' 是否已經(jīng)被青蛙喊出。這是因為 'c' 的叫聲通常是在 'k' 的叫聲之后發(fā)出的,作為一種特殊的叫聲組合。如果 'k' 已經(jīng)被喊出,那么青蛙可以繼續(xù)喊出 'c';否則,我們需要重新開始模擬,即重新引入一個青蛙來嘗試喊出這些字符。

二、算法執(zhí)行的詳細步驟

根據(jù)以上邏輯,我們可以將算法的執(zhí)行過程細化為以下步驟:

  1. 初始化一個標志位,用于記錄是否有青蛙發(fā)出叫聲。
  2. 遍歷輸入的字符序列,對每個字符進行判斷。
  3. 對于字符 'r'、'o'、'a'、'k',檢查其前一個字符是否已經(jīng)被青蛙喊出。如果是,則更新標志位,表示當前字符可以被喊出;否則,返回 -1。
  4. 對于字符 'c',檢查字符 'k' 是否已經(jīng)被喊出。如果是,則允許青蛙喊出 'c';否則,重新開始模擬過程。
  5. 如果遍歷完整個字符序列后,青蛙成功地喊出了所有字符,則算法執(zhí)行成功;否則,返回 -1 表示無法模擬出青蛙的叫聲。

3.代碼編寫

class Solution 
{
public:
    int minNumberOfFrogs(string croakOfFrogs) 
    {
        string s = "croak";
        int n = s.size();
        vector<int> hash(n);
        unordered_map<char, int> idx;
        for(int i = 0; i < n; i++) idx[s[i]] = i;
        for(const auto &ch : croakOfFrogs)
        {
            if(ch == 'c')
            {
                if(hash[n - 1]) hash[n - 1]--;
                hash[0]++;
            }
            else
            {
                if(hash[idx[ch] - 1] == 0) return -1;
                hash[idx[ch] - 1]--;
                hash[idx[ch]]++;
            }
        }
        for(int i = 0; i < n - 1; i++)
        {
            if(hash[i]) return -1;
        }
        return hash[n - 1];
    }
};

The Last

嗯,就是這樣啦,文章到這里就結束啦,真心感謝你花時間來讀。

覺得有點收獲的話,不妨給我點個吧!

如果發(fā)現(xiàn)文章有啥漏洞或錯誤的地方,歡迎私信我或者在評論里提醒一聲~?文章來源地址http://www.zghlxwxcb.cn/news/detail-848220.html

到了這里,關于【Leetcode每日一題】模擬 - 數(shù)青蛙(難度??)(54)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 【每日易題】Leetcode上Hard難度的動態(tài)規(guī)劃題目——地下城游戲的實現(xiàn)

    【每日易題】Leetcode上Hard難度的動態(tài)規(guī)劃題目——地下城游戲的實現(xiàn)

    君兮_的個人主頁 即使走的再遠,也勿忘啟程時的初心 C/C++ 游戲開發(fā) Hello,米娜桑們,這里是君兮_,博主最近一直在鉆研動態(tài)規(guī)劃算法,最近在Leetcode上刷題的時候遇到一個Hard難度的動態(tài)規(guī)劃題,今天就借此機會來給大家分享一下我對這個題目的一些看法和解題思路(放心,

    2024年02月05日
    瀏覽(27)
  • 劍指 Offer 29. 順時針打印矩陣 / LeetCode 54. 螺旋矩陣(模擬)

    劍指 Offer 29. 順時針打印矩陣 / LeetCode 54. 螺旋矩陣(模擬)

    鏈接:劍指 Offer 29. 順時針打印矩陣;LeetCode 54. 螺旋矩陣 難度:中等 給你一個 m 行 n 列的矩陣 matrix ,請按照 順時針螺旋順序 ,返回矩陣中的所有元素。 示例 1: 輸入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 輸出:[1,2,3,6,9,8,7,4,5] 示例 2: 輸入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 輸出:

    2024年02月15日
    瀏覽(22)
  • leetcode每日一題44

    圖論 dfs/bfs dfs代碼框架 思路:本題要求找到被x圍繞的陸地,所以邊界的陸地O肯定不符合條件。那么我們只要從周邊找到陸地O然后 通過 dfs或者bfs 將周邊靠陸地且相鄰的陸地O都變成A,然后再去重新遍歷地圖的時候,把剩下的O變成X,再把所有的A變成O。 確認遞歸函數(shù),參數(shù)

    2024年01月19日
    瀏覽(28)
  • 二叉樹(下)+Leetcode每日一題——“數(shù)據(jù)結構與算法”“對稱二叉樹”“另一棵樹的子樹”“二叉樹的前中后序遍歷”

    二叉樹(下)+Leetcode每日一題——“數(shù)據(jù)結構與算法”“對稱二叉樹”“另一棵樹的子樹”“二叉樹的前中后序遍歷”

    各位CSDN的uu們你們好呀,今天小雅蘭的內容仍然是二叉樹和Leetcode每日一題,下面,就讓我們進入二叉樹的世界吧?。?! 這個題目需要重新定義一個函數(shù),函數(shù)參數(shù)需要有左子樹和右子樹,題目所給定的函數(shù)無法解決問題。 每個不為空的結點,都可以認為是一棵子樹的根?

    2024年02月16日
    瀏覽(29)
  • LeetCode每日一題之 復寫0

    LeetCode每日一題之 復寫0

    目錄 題目介紹: 算法原理: 特殊位置處理: 代碼實現(xiàn): 題目鏈接:. - 力扣(LeetCode) 這種對數(shù)組元素進行修改,移動的題目我們仍然可以使用雙指針法,不過我們按照常規(guī)思路從左到右處理數(shù)組,不難發(fā)現(xiàn)如下這種問題: 當cur指向1時,讓dest下一個元素復寫cur指向的元素

    2024年04月23日
    瀏覽(27)
  • 每日一題(LeetCode)----二分查找(一)

    給定一個排序數(shù)組和一個目標值,在數(shù)組中找到目標值,并返回其索引。如果目標值不存在于數(shù)組中,返回它將會被按順序插入的位置。 請必須使用時間復雜度為 O(log n) 的算法。 示例 1: 示例 2: 示例 3: 提示: 1 = nums.length = 104 -104 = nums[i] = 104 nums 為 無重復元素 的 升序 排列數(shù)

    2024年02月08日
    瀏覽(25)
  • 【LeetCode每日一題】——566.重塑矩陣

    【LeetCode每日一題】——566.重塑矩陣

    矩陣 簡單 566.重塑矩陣 在 MATLAB 中,有一個非常有用的函數(shù) reshape ,它可以將一個 m x n 矩陣重塑為另一個大小不同(r x c)的新矩陣,但保留其原始數(shù)據(jù)。 給你一個由二維數(shù)組 mat 表示的 m x n 矩陣,以及兩個正整數(shù) r 和 c ,分別表示想要的重構的矩陣的行數(shù)和列數(shù)。 重構后

    2024年02月14日
    瀏覽(20)
  • 【LeetCode每日一題】——85.最大矩形

    【LeetCode每日一題】——85.最大矩形

    矩陣 困難 85.最大矩形 給定一個僅包含 0 和 1 、大小為 rows x cols 的二維二進制矩陣,找出只包含 1 的最大矩形,并返回其面積。 示例 1: 輸入:matrix = [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“

    2024年02月13日
    瀏覽(22)
  • 每日一題:LeetCode-75. 顏色分類

    每日一題:LeetCode-75. 顏色分類

    前言: ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ????如果說代碼有靈魂,那么它的靈魂一定是???? 算法 ????,因此,想要寫出??優(yōu)美的程序??,核心算法是必不可少的,少年,你渴望力量嗎????,想掌握程序的靈魂嗎???那么就必須踏上這樣一條漫長

    2024年02月04日
    瀏覽(23)
  • Leetcode每日一題——“移除元素”

    Leetcode每日一題——“移除元素”

    各位CSDN的uu們你們好呀,小雅蘭又來啦,今天,小雅蘭的內容是移除元素,下面,讓我們進入Leetcode的世界吧 ? 說明: 為什么返回數(shù)值是整數(shù),但輸出的答案是數(shù)組呢? 請注意,輸入數(shù)組是以「引用」方式傳遞的,這意味著在函數(shù)里修改輸入數(shù)組對于調用者是可見的。 你可以

    2023年04月23日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包