原创 被3整除的子序列(hard)

鏈接:https://ac.nowcoder.com/acm/problem/21302 來源:牛客網 題目描述 給你一個長度爲50的數字串,問你有多少個子序列構成的數字可以被3整除 答案對1e9+7取模 輸入描述: 輸入一個字符串,由

原创 leetcode886. 可能的二分法(hard)(dfs用於染色問題)

給定一組 N 人(編號爲 1, 2, ..., N), 我們想把每個人分進任意大小的兩組。 每個人都可能不喜歡其他人,那麼他們不應該屬於同一組。 形式上,如果 dislikes[i] = [a, b],表示不允許將編號爲 a 和 b 的人

原创 機器人達到指定位置的方法數(hard)

  思路 dp[i][j]:走i步,到j位置的方案數量 dp[i][j] = dp[i-1][j-1]+dp[i-1][j+1] 每個位置方案數,都等於上個時刻左右兩邊方案數,注意n+2和0的位置的padding,可以處理邊界情況

原创 leetcode31 字典序下一個排列(mid)

題目 實現獲取下一個排列的函數,算法需要將給定數字序列重新排列成字典序中下一個更大的排列。 如果不存在下一個更大的排列,則將數字重新排列成最小的排列(即升序排列)。 必須原地修改,只允許使用額外常數空間。 以下是一些例子,輸入位於左側列,

原创 換錢的最少貨幣數

https://www.nowcoder.com/practice/4e05294fc5aa4d4fa8eacef2e606e5a8?tpId=101&tqId=33080&tPage=1&rp=1&ru=/ta/programmer-

原创 leetcode486 預測贏家(排成一條線的紙牌博弈問題)

  思路1:暴力遞歸法 會超時 #include <iostream> #include <vector> using namespace std; class Solution{ public: // 爲先手時 i

原创 換錢的方法數(hard,主要怎樣去重)

思路1:空間壓縮的dp dp[i]:表示換 i 的錢的方案數量 這裏注意去重,如2,3,5,換5的錢                    0 1 2 3 4 5 以2爲起始  1 0 1 0 2 0 以3爲起始  1 0 1 1 2

原创 logN時間複雜度的斐波那契數列

引入矩陣冪次乘法 class Solution { public: int fib(int n) { if(n < 1) return 0; if(n < 3) return 1;

原创 leetcode28 實現 strStr()--KMP算法應用(hard)

題目 實現 strStr() 函數。 給定一個 haystack 字符串和一個 needle 字符串,在 haystack 字符串中找出 needle 字符串出現的第一個位置 (從0開始)。如果不存在,則返回  -1。 示例 1: 輸入:

原创 leetcode30 串聯所有單詞的子串(hard)

題目 給定一個字符串 s 和一些長度相同的單詞 words。找出 s 中恰好可以由 words 中所有單詞串聯形成的子串的起始位置。 注意子串要與 words 中的單詞完全匹配,中間不能有其他字符,但不需要考慮 words 中單詞串聯的順

原创 leetcode19 刪除鏈表的倒數第N個節點(邊界注意)

題目 給定一個鏈表,刪除鏈表的倒數第 n 個節點,並且返回鏈表的頭結點。 示例: 給定一個鏈表: 1->2->3->4->5, 和 n = 2. 當刪除了倒數第二個節點後,鏈表變爲 1->2->3->5. 說明: 給定的 n 保證是有效的

原创 leetcode32 最長有效括號(hard)

題目 給定一個只包含 '(' 和 ')' 的字符串,找出最長的包含有效括號的子串的長度(連續的長度,而不是裏面有效括號長度)。 示例 1: 輸入: "(()" 輸出: 2 解釋: 最長有效括號子串爲 "()" 示例 2: 輸入: ")()

原创 leetcode29 兩數相除(hard,位運算)

題目 給定兩個整數,被除數 dividend 和除數 divisor。將兩數相除,要求不使用乘法、除法和 mod 運算符。 返回被除數 dividend 除以除數 divisor 得到的商。 示例 1: 輸入: dividend = 10

原创 leetcode20 有效的括號(easy)

題目: 給定一個只包括 '(',')','{','}','[',']' 的字符串,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。 左括號必須以正確的順序閉合。 注意空字符串可被認爲是有效字符串。 示例 1:

原创 leetcode25 K 個一組翻轉鏈表

題目 給你一個鏈表,每 k 個節點一組進行翻轉,請你返回翻轉後的鏈表。 k 是一個正整數,它的值小於或等於鏈表的長度。 如果節點總數不是 k 的整數倍,那麼請將最後剩餘的節點保持原有順序。 示例 : 給定這個鏈表:1->2->3->4->