青训营X豆包MarsCode技术训练营第一课|豆包MarsCode AI刷题
题目如图:
解题思路: 由题可知,有一个由多个大数字构成的数组,他想让我们从这几个大数字中,每一个大数字取一个数字,判断所有大数字取得的数字之和是否是偶数,求出大数字拆分的所有分组,并输出。实际上就是让我们遍历大数组,在每个小数组中取一个数,遍历所有可能性取判断条件,我们可以选取一个List表来存储数组中由每一个大数字的小数字组成的List表,从而实现对他的遍历输出,想将他分离开来,我们需要用n%10的办法,来一步步分离末尾数字。将他们分好后,再实现一个back()函数,来不断的从这几个list表中取一个数字,并将总数+1. 解题如下:
这段代码将大数组转化成了一个元素为List表的List表,便于后续的遍历操作。将数组中的大数字,转换成单个数字存储在表中,便于后续操作。
这段代码则是核心部分,用递归的方法实现了遍历操作,通过对mount的递归,将复杂问题简单化,要求第一个数据的mount值,则看下一个数据符不符合条件,直到最后一个数据满足条件,则mount++,从而实现了将所有遍历出正确的结果的个数输出。
知识总结: 要善于利用java提供的接口,如list接口等,去实现将数组元素的转换,从而调用接口方法简化操作,减少工作量,且要掌握递归的思想,即将复杂的东西通过一层层的解决来完成最后的操作,即将重复的操作提炼出来,例如汉诺塔问题等,递归调用是非常有效且常见的方法,要多去理解他的实现过程,从而灵活的运用它去完成代码。
学习计划: 我自认为高效的学习方法便是,将Java书本放在旁边以便于查询资料,在学习中遇到自己不会的题目,或者不熟悉其实现思路的题目,应当多去思考,并且用AI来辅助自己的理解,从而达到查漏补缺,填补这个知识体系的空缺。
工具运用: 在面对思路不同的情况下,可以通过该ai助手提供的帮助,来理解题目的解题逻辑与代码实现方式,从而提高自己对题目的理解来掌握知识,将AI与课本知识联系在一起,在书本上遇到不理解的定义或者实现代码,可以多去询问AI以求答复,从而从深层次的理解含义。