- 博客(7)
- 收藏
- 关注
原创 【无标题】
记录一下用python做的这题,之前用c++做的手动打表太麻烦了,所以用一下啊python,顺便复习一下python <( ̄︶ ̄)↗,排版比较差,请原谅 /_ \。
2025-05-28 22:35:21
228
原创 第四周 周记
n的排列和一个栈,入栈顺序给定 ,你要在不打乱入栈顺序的情况下,对数组进行从大到小排序 ,当无法完全排序时,请输出字典序最大的出栈序列。遍历数组和字符串:对每个数字 a[i] 和对应字符 s[i]:若数字未记录,添加映射,若已记录但字符不一致,标记为不可行。实现方法:使用哈希表记录每个数字到字符的映射,遍历数组和字符串,检查每个数字是否已存在映射,若存在则必须与当前字符一致。验证条件:相同的数字必须映射到相同的字符,不同的数字可以映射到相同的字符。初始化哈希表:存储数字到字符的映射关系。
2025-02-22 20:11:10
364
原创 第三周周记
遍历items数组中的每一个元素(代表一个可组成的金额),并更新dp数组。使用一个布尔类型的动态规划数组dp,其中dp[j]表示金额j是否可以通过某种方式用提供的硬币组成。初始时,只有dp[0]为true,因为金额0总是可以通过不选择任何硬币来获得。对于n≥7,有以下构造方法:a0=n−4,a1=2,a2=1,an−4 =1, 其余位置均为0 对于n<7,可以直接暴力枚举求解,或手工打表等。判断首次出现1的一行和下一行之间1的数量差,如果相等的话就为正方形,不等就为三角形。:通过推导发现,所有子序列的。
2025-02-16 18:49:32
373
原创 第二次周记
这题借鉴了其他人的思路,通过思考可以发现只要原字符串以B开头和结尾,或者至少存在一个字串BB,那么所有的A都可以被完全消掉。如果是0变成1,增益为右边0的数量减去左边1的数量;如果是1变成0,增益为左边1的数量减去右边0的数量。为了解决这个问题,我们需要找到在最多翻转一个元素的情况下,二进制数组可以具有的最大逆序对数量。我们可以通过预处理数组来高效地计算每个元素翻转后的增益,从而找到最优解。:遍历数组,统计每个1后面出现的0的数量,累加得到原始逆序对数目。:记录位置i左边(不包括i)的1的数量。
2025-02-09 20:06:09
964
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅