会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
hql5
博客园
首页
新随笔
联系
订阅
管理
2022年12月5日
设计模式简单总结
摘要: ##UML例子 该例子主要有继承关系,实现接口关系,依赖关系,组合(合成)关系,关联关系。 UML中接口的两种表示方法: ##简单工厂模式 如果只有计算父类和具体的加减乘除子类就已经满足封装继承多态了,但是需要增加操作类型时需要修改父类代码,需要实例化父类对象,安全性不高。考虑用一个单独的类做创建实
阅读全文
posted @ 2022-12-05 18:18 hql5
阅读(56)
评论(0)
推荐(0)
2022年11月12日
Leetcode第790题:多米诺和托米诺平铺(Domino and tromino tiling)
摘要: 解题思路 采用动态规划思路。参考题解。 核心代码如下: const long long mod = 1e9 + 7; class Solution { public: int numTilings(int n) { vector<vector<long long>> dp(n + 1, vector
阅读全文
posted @ 2022-11-12 20:08 hql5
阅读(31)
评论(0)
推荐(0)
2022年11月11日
Leetcode第1704题:判断字符串的两半是否相似(Determine is string halves are alike)
摘要: 解题思路 直接模拟。将字符串分为两半,分别遍历统计各元音出现的次数,最后比较是否相等即可。 核心代码如下: bool halvesAreAlike(string s) { string a = s.substr(0, s.size() / 2); string b = s.substr(s.size
阅读全文
posted @ 2022-11-11 13:15 hql5
阅读(28)
评论(0)
推荐(0)
2022年11月10日
Leetcode第864题:获取所有钥匙的最短路径(Shortest path to get all keys)
摘要: 解题思路 想到最短路径问题,自然想到用BFS解决问题,但是只记录位置还不够,还需要记录当前拥有的钥匙状态。 需要的数据结构 钥匙的个数是$1-6$,用一个二进制数表示钥匙的状态,第$i$位表示钥匙已经获取到。 队列q记录当前位置以及拥有钥匙的状态,(i,j,state),$state$的第$i$位为
阅读全文
posted @ 2022-11-10 16:28 hql5
阅读(62)
评论(0)
推荐(0)
2022年11月9日
Leetcode第764题:最大加号标志(Largest plus sign)
摘要: 解题思路 grid中的每个位置$(i,j)$,以该位置为中心的最大加号标志的阶数定义为dp[i][j],则最终返回结果就是所有dp[i][j]中的最大值。 对于每个$(i,j)$,最大阶数不会超过上下左右四个方向的连续的1的个数。首先计算出每个位置四个方向上的连续1的个数,然后遍历所有的$(i,j)
阅读全文
posted @ 2022-11-09 20:22 hql5
阅读(64)
评论(0)
推荐(0)
2022年11月8日
Leetcode第1684题:统计一致字符串的数目(Count the number of consistent strings)
摘要: 解题思路 采用位运算的思路不太好理解。但思想就是根据allowed建立一个$mask$,遍历words中的每个元素的每个字符c,查看$mask$的值是否为真。 如果存在就返回结果加一。 如果不存在就退出当前字符串的遍历,转向words中的下一个字符串。 核心代码如下: int countConsis
阅读全文
posted @ 2022-11-08 13:09 hql5
阅读(26)
评论(0)
推荐(0)
2022年11月7日
Leetcode第816题:模糊坐标(Ambigious cooridinates)
摘要: 解题思路 题目给出字符串s为某些原始坐标字符串去掉所有逗号,小数点和空格后得到的字符串,其中需要满足原始坐标表示中的数不会存在多余的零。 现在我们要求出所有能生成字符串s的所有可能的原始字符串。 我们可以尝试将原始坐标字符串中去掉的逗号,小数点和空格进行还原——首先在字符串s中枚举添加逗号和空格的位
阅读全文
posted @ 2022-11-07 16:32 hql5
阅读(45)
评论(0)
推荐(0)
2022年11月6日
Leetcode第1678题:设计GOAL解析器(Goal parser interpretation)
摘要: 解题思路 遍历字符串command: 如果当前第i个字符为G,直接在返回结果中添加字符G。 如果当前第i个字符为(,有两种情况: 第i+1个字符为),转化为o. 第i+1个字符为a,则当前字符串会是(al),转化为al. 遍历结束后,返回结果即可。 核心代码如下: class Solution {
阅读全文
posted @ 2022-11-06 20:42 hql5
阅读(32)
评论(0)
推荐(0)
2022年11月5日
Leetcode第1106题:解析布尔表达式(Parsing a boolean expression)
摘要: 解题思路 看到表达式求解,自然想到栈。 从左至右遍历布尔表达式expression,对于不同类型字符,进行不同操作: 逗号,,跳过该字符; 不是逗号,和右括号),入栈; 如果是右括号),则一个表达式遍历结束,需要解析该表达式的值,并将结果入栈 出栈,直到栈顶元素是左括号(,然后将左括号(和运算符出栈
阅读全文
posted @ 2022-11-05 18:32 hql5
阅读(68)
评论(0)
推荐(0)
2022年11月4日
Leetcode第754题:到达最终数字(Reaching a number)
摘要: ##解题思路 1+2+3+4+5+6=15,而1+2-3+4+5+6=9,对于同样的累加,一个数字符号相反,结果少了2*A,这是一条规律。 当移动的总距离num刚好等于target时,返回移动的次数就可以了。 对于负的target,可以取绝对值,当移动的总距离num等于target,且num-tar
阅读全文
posted @ 2022-11-04 10:20 hql5
阅读(35)
评论(0)
推荐(0)
下一页
公告