科大讯飞非凡计划笔试

7月13日晚上的笔试
要求双机位
选择题考的很广,之前大佬们也都有写过,就不赘述了。
编程题1:有一个由01组成的字符串,求任意一个位置上与他最近的不同字符所在的位置,只要求前面的
输入:1101
输出:-1 -1 2 3
这个题直接暴力求解就行,遍历整个字符串,对每一个字符从当前位置向前搜索一个和他不同的字符即可

编程题2:有一个数组和一个阈值,找这个数组中出现次数小于等于阈值的数中最小的那个
输入:
5 2
1 1 1 2 3
输出:2
这里面只有2和3满足出现次数小于阈值2,在2,3中找最小的就是2
这个题可以用map保存数字和对应数字出现的次数,然后遍历map,如果map中某个数的出现次数小于等于阈值,就结束遍历,打印这个值即可

编程题3:有一个数组,你可以对数组中任意一个元素进行0次或多次乘2和除2操作,但要保证每个数字要么执行乘2,要么执行除2,不能又乘又除,操作完后使整个数组不递减,要求执行的最少操作次数
输入:
5
10 10 5 6 4
输出:3
输入:
8
10 3 1 6 8 12 7 5
输出:7
这个题没有想出来解法,感觉可能会用到回溯或者动归?学艺不精,还请大佬指导
全部评论
大佬现在什么状态?
点赞 回复 分享
发布于 07-17 10:31 重庆
第三题应该是dp了 leetcde中等以上难度了
点赞 回复 分享
发布于 07-19 12:32 山东
第三题的数组长度和val大小在多大范围呢
点赞 回复 分享
发布于 07-19 22:20 江苏

相关推荐

6 12 评论
分享
牛客网
牛客企业服务