AI刷题中题目思路分析与所得知识2 | 豆包MarsCode AI刷题

50 阅读2分钟

小c的点菜问题:

很简单的一道题

image.png 只需要首先用if判断价格是否小于要求价格,然后对于符合要求价格的商品,分别存储他们每个价格出现的次数,并存储在数组中,之后用for循环找到他们当中出现最多的价格,然后输出能购买的数量即可

思考:最开始没有想到可以用小c能够承受的最大单价来定义数组大小,最开始我想用类似{ 元素 - ‘字母’ }得到十进制ASCII码的方式实现,但发现好像不能够这么做,于是就僵住了

红包运气排行榜:

代码学习来源:字节青训营 红包运气排行榜_csdn 红包运气排行榜-CSDN博客

image.png

定义结构体,用来存储用户名和红包金额,采用结构体可以,将用户与相应的红包金额连接起来

image.png Compare函数,用于后续的qsort函数进行大小排序,比较每一个结构体中amount红包数量

image.png 首先定义结构体数组,对于每一个用户给予一个单独的结构体,之后初始化每个用户的红包个数,之后用qsort函数对结构体数组根据红包金额进行排序,,之后把排序结束后的结构体数组元素分别输入result数组中,最后在主函数中调用solution函数,得到结果

思路学习:可以用结构体的方法将两个一一对应的数组相关联起来,最开始没有想到这点,想通过修改指针指向的位置来排序,但是尤为困难

构造特定数组的逆序拼接:

image.png 此题目很简单,只需要两层循环嵌套即可,首先根据题意,在solution函数中定义一个元素数量为n(n+1)/2的数组,用来存放结果,由于输出结果循环次数正好为n次,所以用while(n)…n—来限制大循环次数,之后在while内嵌套一层for循环,把元素存放进result数组中,但是每次输入都需要前往数组的下一个位置,因此还需要定义index索引,来找到存放整数的位置,并将每一个元素赋值为temp – i,来满足数组规律要求,不采用temp--,--temp输出的方法,以免改变temp的值,这是由于数组规律每次循环需要从最高的数字开始向下减少,用temp-i的方法寻找值还不用再额外定义新的变量