
获得徽章 0
赞了这篇文章
赞了这篇沸点
#刷题交流# 第二十七天 数字分组求偶数和
题目目标:
使得这个新数的各位数字之和为偶数。—— 换句话说,任务是计算出有多少种不同的分组和选择方法可以达到这一目标。
思路:
numbers: 一个由多个整数字符串组成的列表,每个字符串可以视为一个数字组。 需要从每个数字组中选择一个数字。并且该新生成数的各个位上的数是按照第一、二、三......的数组中的顺序表示
通过递归的方式,并判断每一个组合是否为偶数就可以求解结果。
在我列出所有的可能后:
不难发现,每一个前缀组合相同的情况下,最后一个数的奇偶性,决定了是否满足目标。
前缀为偶数,那么最后一位必须为偶数
前缀为奇数,那么最后一位必须为奇数
那么,凭借这个特性,我们是否可以进行一些优化的可能,减少一层的递归,优化时间复杂度和空间复杂度
最后一天啦,完美打卡![[呲牙]](//lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_2.cd1e2bd.png)
![[呲牙]](//lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_2.cd1e2bd.png)
题目目标:
使得这个新数的各位数字之和为偶数。—— 换句话说,任务是计算出有多少种不同的分组和选择方法可以达到这一目标。
思路:
numbers: 一个由多个整数字符串组成的列表,每个字符串可以视为一个数字组。 需要从每个数字组中选择一个数字。并且该新生成数的各个位上的数是按照第一、二、三......的数组中的顺序表示
通过递归的方式,并判断每一个组合是否为偶数就可以求解结果。
在我列出所有的可能后:
不难发现,每一个前缀组合相同的情况下,最后一个数的奇偶性,决定了是否满足目标。
前缀为偶数,那么最后一位必须为偶数
前缀为奇数,那么最后一位必须为奇数
那么,凭借这个特性,我们是否可以进行一些优化的可能,减少一层的递归,优化时间复杂度和空间复杂度
最后一天啦,完美打卡
![[呲牙]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_2.cd1e2bd.png)
![[呲牙]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_2.cd1e2bd.png)
![[呲牙]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_2.cd1e2bd.png)
展开
1
1
#刷题交流# 第二十六天 小S的字母子序列挑战
题目分析:
判断是否可以从给定的 n 行 m 列的字符矩阵中,选择每行的一个字符,使得这些字符组成的字符串包含子序列 "chi"。
解题思路:
子序列的定义是可以通过删除其他字符从原字符串中获得而不改变相对顺序的字符序列。
可以通过贪心模拟即从每行中选择一个字符,使得这些字符尽可能地接近 "chi" 的顺序。
判断条件:
1、遍历每一行:对于每一行字符串 s,检查当前目标字符 p[j] 是否存在于 s 中。
如果存在,则将指针 j 向后移动一位,表示已经匹配到 "chi" 的下一个字符。
如果不存在,则继续检查下一行。
2、如果最终指针 j 等于 "chi" 的长度,说明已经成功匹配到整个子序列 "chi",返回 True;否则返回 False。
题目分析:
判断是否可以从给定的 n 行 m 列的字符矩阵中,选择每行的一个字符,使得这些字符组成的字符串包含子序列 "chi"。
解题思路:
子序列的定义是可以通过删除其他字符从原字符串中获得而不改变相对顺序的字符序列。
可以通过贪心模拟即从每行中选择一个字符,使得这些字符尽可能地接近 "chi" 的顺序。
判断条件:
1、遍历每一行:对于每一行字符串 s,检查当前目标字符 p[j] 是否存在于 s 中。
如果存在,则将指针 j 向后移动一位,表示已经匹配到 "chi" 的下一个字符。
如果不存在,则继续检查下一行。
2、如果最终指针 j 等于 "chi" 的长度,说明已经成功匹配到整个子序列 "chi",返回 True;否则返回 False。
![[不失礼貌的微笑]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_16.9d17f6d.png)
展开
1
1
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇沸点
赞了这篇沸点