
刷题之路
文章平均质量分 75
这是刷题算法记录学习的专栏
我焦虑的编程日记
热爱编程,但很焦虑。
gitee主页:https://gitee.com/iqyy
展开
-
【算法】逆波兰表达式
逆波兰表达式也称为“后缀表达式”,是将运算符写在操作数之后的运算式。原创 2023-08-11 03:00:01 · 551 阅读 · 1 评论 -
【动态规划】01背包问题(滚动数组 + 手画图解)
一、滚动数组的基本理解我对于滚动数组的理解是:滚动数组是基于二维数组之上产生的,之所以滚动数组能够用一维的方式去完成和二维同样的工作,原因就是在于这个滚动数组能够重复产生数据,进而有“滚动”的效果。滚动数组的本质还是二维数组,只是数据不再产生新的行,只在一行上一直进行数据的覆盖更新,因此要特别注意数据污染的情况。原创 2023-02-11 01:12:37 · 6724 阅读 · 6 评论 -
【动态规划】01背包问题(手画图解)
01背包问题是所有背包问题的根本所在,掌握好dp五部曲,明确dp及其下标含义,勤加练习是制胜之道!原创 2023-02-07 21:59:17 · 7188 阅读 · 6 评论 -
【动态规划】不同的二叉搜索树(手画图解)
这道题的难点在于递推公式的推导比较抽象,这就要求我们时刻记住第一步自己确定好的各种含义,在推导递推公式过程中,把握下一个状态是怎么能从上一个状态变化得到这一原则,勤加练习!原创 2023-02-07 09:27:06 · 884 阅读 · 8 评论 -
【刷题】最长公共前缀
上题目:力扣一、实现思想从上到下,从前到后依次遍历,如果相同就接着遍历下一行,如果不同就直接将目前遍历到的字符置为'\0'。竖列扫描就是从上到下,依次对每个指针元素进行遍历,宏观上看是将这个二维数组的所有元素放在同一竖列上,然后进行从左往右的遍历。这种遍历方式的不同指出在于for循环变量的控制上:因为每次小遍历的是每一列的内容。原创 2023-02-05 12:37:38 · 130 阅读 · 1 评论 -
【刷题】二进制求和
同上次做过的的二进制求和相似(按位异或求出的是无进位和,按位与求出的是进位,将两数加到进位为0为止),此题也是列竖式的方式求解,不过不同的是,这道题是以字符串的形式出现的两个数字,需要将每一位单独分出来找规律。一、题目给你两个二进制字符串a和b,以二进制字符串的形式返回它们的和。原创 2023-02-02 00:11:29 · 592 阅读 · 6 评论 -
【刷题】珠玑妙算
这道题需要使用哈希表,如果只是硬解,会有很多情况考虑不周。一、真猜中数:用一个变量遍历两个字符串(solution,guess),对应位置相等即加到realCount中得到真猜中数。伪猜中数:用一个变量去同时遍历两个哈希表,如果不为0,那么说明这个字母被猜中(不管真假),此时需要取两表中较小值(如果realHash中的小,那么说明猜的次数比真正有的次数多,多猜的是无效的;反之,如果fakeHash中的小,那么说明猜的次数比真正有的次数少,以猜中的为准)原创 2023-01-29 17:58:47 · 790 阅读 · 2 评论 -
【刷题】不用加减乘除做加法
这道题不让用四则运算符做加法,于是我第一反应是用位运算。难道转成二进制再使用位运算吗,显然不需要,列草稿可以观察到一部分规律。一、找规律列出5+7的二进制竖式,可以得知:两数相加分为本位和与进位和,本位和是按位异或的结果,进位和是按位与的结果,进位需要进在上一位,所以需要左移。原创 2023-01-29 11:37:40 · 726 阅读 · 1 评论 -
【刷题】多数元素
此为“多数元素”题的解法,一开始想的是用哈希表直接求出来对应数字出现次数,然后判断数据出现次数是不是>=n/2,但是很难把握,有负数与极大值的情况很难应对,所以上网找了相关思路,最佩服的是这个摩尔投票法,很巧妙的就解决了这个问题,且只需要遍历一遍数组就可以解决问题。原创 2023-01-28 14:20:39 · 338 阅读 · 4 评论