leetcode 刷题(十七)
动态规划字符串
最长回文子序列
难度:中等
给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。示例 1:输入:s = “bbbab”输出:4解释:一个可能的最长回文子序列为 “bbbb”
示例 2:输入:s = “cbbd”输出:2解释:一个可能的最长回文子序列为 “bb” 。
方法一
12345678910111213class Solution: def longestPalindromeSubseq(self, s: str) -> int: n = len(s) dp = [[0] * n for _ in range(n)] for i in range(n-1,-1,-1): dp[i][i] = 1 for j in range(i+1,n): if s[i]==s[j]: dp[i][j] = dp[i+1][j-1]+2 ...
leetcode 刷题(十二)
动态规划矩阵
不同路径II
难度:中等
给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角(即 grid[0][0])。机器人尝试移动到 右下角(即 grid[m - 1][n - 1])。机器人每次只能向下或者向右移动一步。 网格中的障碍物和空位置分别用 1 和 0 来表示。机器人的移动路径中不能包含 任何 有障碍物的方格。 返回机器人能够到达右下角的不同路径数量。 测试用例保证答案小于等于 2 109。*示例 1:输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]输出:2解释:3x3 网格的正中间有一个障碍物。从左上角到右下角一共有 2 条不同的路径:
向右 -> 向右 -> 向下 -> 向下
向下 -> 向下 -> 向右 -> 向右
示例 2:输入:obstacleGrid = [[0,1],[0,0]]输出:1
方法一
1234567891011121314151617181920class Solution(object): def uniquePathsWithObsta ...
leetcode 刷题(十五)
动态规划字符串
最长回文子串
难度:中等
给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:”bab”解释:”aba” 同样是符合题意的答案。
示例 2:输入:s = “cbbd”输出:”bb”
方法一
123456789101112131415161718192021222324class Solution(object): def longestPalindrome(self, s): """ :type s: str :rtype: str """ n = len(s) maxlen=1 be=0 def ishw(s,i,j): while(i<j): if s[i]!=s[j]: return False i+=1 j-=1 return ...
leetcode 刷题(十三)
动态规划矩阵
三角形最小路径和
难度:中等
给定一个三角形 triangle ,找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1 。
示例 1:输入:triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]输出:11解释:如下面简图所示: 2 3 4 6 5 74 1 8 3自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。
示例 2:输入:triangle = [[-10]]输出:-10
方法一
1234567891011121314151617class Solution(object): def minimumTotal(self, triangle): """ :type triangle: List[List[int]] :rtype: int ...
leetcode 刷题(十九)
动态规划字符串
两个字符串最小的ASCII删除和
难度:中等
给定两个字符串s1 和 s2,返回 使两个字符串相等所需删除字符的 ASCII 值的最小和。
示例 1:输入: s1 = “sea”, s2 = “eat”输出: 231解释: 在 “sea” 中删除 “s” 并将 “s” 的值(115)加入总和。在 “eat” 中删除 “t” 并将 116 加入总和。结束时,两个字符串相等,115 + 116 = 231 就是符合条件的最小和。
示例 2:输入: s1 = “delete”, s2 = “leet”输出: 403解释: 在 “delete” 中删除 “dee” 字符串变成 “let”,将 100[d]+101[e]+101[e] 加入总和。在 “leet” 中删除 “e” 将 101[e] 加入总和。结束时,两个字符串都等于 “let”,结果即为 100+101+101+101 = 403 。如果改为将两个字符串转换为 “lee” 或 “eet”,我们会得到 433 或 417 的结果,比答案更大。
方法一
12345678910111213141516class ...
leetcode 刷题(十八)
动态规划字符串
编辑距离
难度:中等
给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符
示例 1:输入:word1 = “horse”, word2 = “ros”输出:3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose (删除 ‘r’)rose -> ros (删除 ‘e’)
示例 2:输入:word1 = “intention”, word2 = “execution”输出:5解释:intention -> inention (删除 ‘t’)inention -> enention (将 ‘i’ 替换为 ‘e’)enention -> exention (将 ‘n’ 替换为 ‘x’)exention -> exection (将 ‘n’ 替换为 ‘c’)exection -> execution (插入 ‘u’)
方法一
12345678910111213 ...
leetcode 刷题(十六)
动态规划字符串
单词拆分
难度:中等
给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode” 可以由 “leet” 和 “code” 拼接成。
示例 2:输入: s = “applepenapple”, wordDict = [“apple”, “pen”]输出: true解释: 返回 true 因为 “applepenapple” 可以由 “apple” “pen” “apple” 拼接成。
示例 3:输入: s = “catsandog”, wordDict = [“cats”, “dog”, “sand”, “and”, “cat”]输出: false
方法一
1234567891011121314class Solution: def wordBreak(self, s: str, wordDict: List[str]) - ...
leetcode 刷题(十四)
动态规划矩阵
下降路径最小和
难度:中等
给你一个 n x n 的 方形 整数数组 matrix ,请你找出并返回通过 matrix 的下降路径 的 最小和 。 下降路径 可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列(即位于正下方或者沿对角线向左或者向右的第一个元素)。具体来说,位置 (row, col) 的下一个元素应当是 (row + 1, col - 1)、(row + 1, col) 或者 (row + 1, col + 1) 。示例 1:输入:matrix = [[2,1,3],[6,5,4],[7,8,9]]输出:13
示例 2:输入:matrix = [[-19,57],[-40,-5]]输出:-59
方法一
12345678910111213141516171819class Solution(object): def minFallingPathSum(self, matrix): """ :type matrix: List[List[int]] ...
leetcode 刷题(十)
动态规划矩阵
不同路径
难度:中等
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。
向右 -> 向下 -> 向下
向下 -> 向下 -> 向右
向下 -> 向右 -> 向下示例 3:输入:m = 7, n = 3输出:28示例 4:输入:m = 3, n = 3输出:6
方法一
123456789101112class Solution(object): def uniquePaths(self, m, n): """ :type m: int :type n: int :rtype: int """ ...
leetcode 刷题(四)
动态规划斐波那契类型
爬楼梯
难度:简单
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:输入:n = 2输出:2解释:有两种方法可以爬到楼顶。
1 阶 + 1 阶
2 阶
示例 2:输入:n = 3输出:3解释:有三种方法可以爬到楼顶。
1 阶 + 1 阶 + 1 阶
1 阶 + 2 阶
2 阶 + 1 阶
方法一1234567891011class Solution(object): def climbStairs(self, n): if n<=2: return n a = 1 b = 2 for i in range (2,n): tem = a a = b b = b +tem return b
解析我们用 f(x) 表示爬到第 x 级台阶的方案数,考虑最后一步可能跨了一级台阶,也可能跨了两级台阶,所以我们可以列出如下式子: f(x)=f(x−1)+f( ...
Butterfly 主题页面(五)
你可以通過右下角的 簡 按鈕切換為簡體顯示
建議
不要把個人需要的文件/圖片放在主題source文件夾裏,因為在升級主題的過程中,可能會把文件覆蓋刪除了。在Hexo根目錄的source文件夾裏,創建一個文件夾來放置個人文件/圖片。引用文件直接為/文件夾名稱/文件名
音樂音樂界面使用了插件 hexo-tag-aplayer使用方法請參考插件文檔
音樂頁面只是普通的page頁,按普通頁面操作生成就行。
以下內容可供選擇配置
注意: 仍需要安裝插件hexo-tag-aplayer
插件會在每一個文件都插入 js 和 css,為了避免這一情況,3.0 版本內置了 aplayer 需要的 css 和 js。
首先在Hexo根目錄_config裏配置asset_inject為false
12aplayer: asset_inject: false
然後在你需要使用aplayer的頁面Front-matter添加
1aplayer: true
這樣只會在需要aplayer的頁面插入js和css。
如何添加全局 Aplayer 播放,請參考 這篇文章
電影電影界面使用了插件 hexo-b ...
Butterfly 主题页面(四)
你可以通過右下角的 簡 按鈕切換為簡體顯示
以下是一些網友在安裝的過程中出現的問題。在提問題之前,先看有沒有解決方法。
運行後網頁顯示代碼頁面只顯示 extends includes/layout.pug block content #recent-posts.recent-posts include includes/recent-posts.pug include includes/pagination.pug #aside_content.aside_content include includes/aside.pug
請下載安裝:npm install hexo-renderer-pug hexo-renderer-stylus --save or yarn add hexo-renderer-pug hexo-renderer-stylus
配置友情鏈接報錯配置友情鏈接頁面時出現報錯
12345678910111213141516171819202122232425262728ERROR D:\Desktop\orxing-blog\themes\Butterfly ...
Butterfly 主题页面(三)
你可以通過右下角的 簡 按鈕切換為簡體顯示
評論通用設置DisqusDisqusjslivere(來必力)GitalkValineWalineUtterancesFacebook CommentsTwikooGiscusremark42artalk從3.0.0開始,開啟評論需要在comments-use中填寫你需要的評論。
支持雙評論顯示,只需要配置兩個評論(第一個為默認顯示)
12345678910comments: # Up to two comments system, the first will be shown as default # Choose: Disqus/Disqusjs/Livere/Gitalk/Valine/Waline/Utterances/Facebook Comments/Twikoo use: Valine,Disqus text: true # Display the comment name next to the button # lazyload: The comment system will be load when c ...
主题美化(二)
在[BlogRoot]\source文件夹下新建一个文件夹css,该文件夹用于存放自定义的css样式,再新建一个名为custom.css,在里面写入以下代码:
1234567891011121314151617181920212223/* 页脚与头图透明 */#footer { background: transparent !important;}#page-header { background: transparent !important;}/* 白天模式遮罩透明 */#footer::before { background: transparent !important;}#page-header::before { background: transparent !important;}/* 夜间模式遮罩透明 */[data-theme="dark"] #footer::before { background: transparent !importan ...
主题美化(一)
参考
参考方向
链接
插件方案项目
插件方案可用模型
原版可换装看板娘项目
张书樵大神魔改项目
原版后端API源码
本地化API版本
模型组装后端API源码
海量模型收集
live_2d模型资源站
live_2d模型资源站
梦象提供的模型的安装教程
写在最前最早的时候看别人的博客很多都有一个可爱的看板娘,然后就找了教程给自己也整了一个。因为找到的教程都是稂莠不齐的,原作者自己说的也略显含糊(其实是我自己看不懂)。总之秉承着一如既往的小白风格。把网上的教程做个整合
Hexo插件版看板娘(不能换装)
首先是博客自带的看板娘,这孩子不会说话也不能换装,只会跟着你的鼠标晃动脑袋,不过有几款超可爱。在Hexo根目录[Blogroot]下打开终端,输入以下指令安装必要插件。1npm install --save hexo-helper-live2d
打开站点配置文件[Blogroot]\config.yml搜索live2d,按照如下注释内容指示进行操作。如果没有搜到live2d的配置项,就直接把以下内容复制到最底部12345 ...
Butterfly 主题页面(二)
你可以通過右下角的 簡 按鈕切換為簡體顯示
語言修改站點配置文件 _config.yml
默認語言是 en
主題支持三種語言
default(en)
zh-CN (簡體中文)
zh-TW (繁體中文)
網站資料修改網站各種資料,例如標題、副標題和郵箱等個人資料,請修改博客根目錄的_config.yml
導航菜單修改 主題配置文件
123456789Home: / || fas fa-homeArchives: /archives/ || fas fa-archiveTags: /tags/ || fas fa-tagsCategories: /categories/ || fas fa-folder-openList||fas fa-list: Music: /music/ || fas fa-music Movie: /movies/ || fas fa-videoLink: /link/ || fas fa-linkAbout: /about/ || fas fa-heart
必須是 /xxx/,後面||分開,然後寫圖標名。
如果不希望顯示圖標,圖標名可不寫。
默認 ...