小明最近喜欢上了俄罗斯套娃、大鱼吃小鱼这些大的包住小的类型的游戏。 于是小明爸爸给小明做了一个特别版的大鱼吃小鱼游戏,他希望通过这个游戏 能够近一步提高牛牛的智商。 游戏规则如下: 现在有N条鱼,每条鱼的体积为Ai,从左到右排成一排。 A数组是一个排列。 小明每轮可以执行一次大鱼吃小鱼的操作 一次大鱼吃小鱼的操作:对于每条鱼,它在每一次操作时会吃掉右边比自己小的第一条鱼 值得注意的时,在一次操作中,每条鱼吃比自己小的鱼的时候是同时发生的。 举一个例子,假设现在有三条鱼,体积为分别[5,4,3],5吃4,4吃3,一次操作后就剩下[5]一条鱼。 爸爸问小明,你知道要多少次操作,鱼的数量就不会变了嘛?-笔试面试资料

这是qklbishe.com第9314 篇笔试面试资料
提供答案分析,通过本文《小明最近喜欢上了俄罗斯套娃、大鱼吃小鱼这些大的包住小的类型的游戏。 于是小明爸爸给小明做了一个特别版的大鱼吃小鱼游戏,他希望通过这个游戏 能够近一步提高牛牛的智商。 游戏规则如下: 现在有N条鱼,每条鱼的体积为Ai,从左到右排成一排。 A数组是一个排列。 小明每轮可以执行一次大鱼吃小鱼的操作 一次大鱼吃小鱼的操作:对于每条鱼,它在每一次操作时会吃掉右边比自己小的第一条鱼 值得注意的时,在一次操作中,每条鱼吃比自己小的鱼的时候是同时发生的。 举一个例子,假设现在有三条鱼,体积为分别[5,4,3],5吃4,4吃3,一次操作后就剩下[5]一条鱼。 爸爸问小明,你知道要多少次操作,鱼的数量就不会变了嘛?-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

小明最近喜欢上了俄罗斯套娃、大鱼吃小鱼这些大的包住小的类型的游戏。

于是小明爸爸给小明做了一个特别版的大鱼吃小鱼游戏,他希望通过这个游戏

能够近一步提高牛牛的智商。

游戏规则如下:

现在有N条鱼,每条鱼的体积为Ai,从左到右排成一排。

A数组是一个排列。

小明每轮可以执行一次大鱼吃小鱼的操作

一次大鱼吃小鱼的操作:对于每条鱼,它在每一次操作时会吃掉右边比自己小的第一条鱼

值得注意的时,在一次操作中,每条鱼吃比自己小的鱼的时候是同时发生的。

举一个例子,假设现在有三条鱼,体积为分别[5,4,3],5吃4,4吃3,一次操作后就剩下[5]一条鱼。

爸爸问小明,你知道要多少次操作,鱼的数量就不会变了嘛?

小明最近喜欢上了俄罗斯套娃、大鱼吃小鱼这些大的包住小的类型的游戏。             于是小明爸爸给小明做了一个特别版的大鱼吃小鱼游戏,他希望通过这个游戏             能够近一步提高牛牛的智商。             游戏规则如下:             现在有N条鱼,每条鱼的体积为Ai,从左到右排成一排。             A数组是一个排列。             小明每轮可以执行一次大鱼吃小鱼的操作             一次大鱼吃小鱼的操作:对于每条鱼,它在每一次操作时会吃掉右边比自己小的第一条鱼             值得注意的时,在一次操作中,每条鱼吃比自己小的鱼的时候是同时发生的。             举一个例子,假设现在有三条鱼,体积为分别[5,4,3],5吃4,4吃3,一次操作后就剩下[5]一条鱼。             爸爸问小明,你知道要多少次操作,鱼的数量就不会变了嘛? 零葬
直接模拟,其实就是进行操作:每次保留整个数组中所有递减序列的第一个元素。直到数组的长度不再改变为止。
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.ArrayList;  public class Main {     public static void main(String[] args) throws IOException {         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));         int n = Integer.parseInt(br.readLine().trim());         String[] strFish = br.readLine().trim().split(" ");         ArrayList<Integer> fish = new ArrayList<>();         for(int i = 0; i < strFish.length; i++)             fish.add(Integer.parseInt(strFish[i]));         ArrayList<Integer> newFish = descSize(fish);         int count = 0;         while(!newFish.isEmpty() && newFish.size() < fish.size()){             count ++;             fish = new ArrayList<Integer>(newFish);             newFish = descSize(fish);         }         System.out.println(count);     }          private static ArrayList<Integer> descSize(ArrayList<Integer> list) {         ArrayList<Integer> newList = new ArrayList<Integer>();         int i = 0;         for(; i < list.size() - 1; i++){             if(i == 0)                 newList.add(list.get(i));             if(list.get(i) <= list.get(i + 1))                 newList.add(list.get(i + 1));         }         return newList;     } }

2021-04-11 22:53:34 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 小明最近喜欢上了俄罗斯套娃、大鱼吃小鱼这些大的包住小的类型的游戏。 于是小明爸爸给小明做了一个特别版的大鱼吃小鱼游戏,他希望通过这个游戏 能够近一步提高牛牛的智商。 游戏规则如下: 现在有N条鱼,每条鱼的体积为Ai,从左到右排成一排。 A数组是一个排列。 小明每轮可以执行一次大鱼吃小鱼的操作 一次大鱼吃小鱼的操作:对于每条鱼,它在每一次操作时会吃掉右边比自己小的第一条鱼 值得注意的时,在一次操作中,每条鱼吃比自己小的鱼的时候是同时发生的。 举一个例子,假设现在有三条鱼,体积为分别[5,4,3],5吃4,4吃3,一次操作后就剩下[5]一条鱼。 爸爸问小明,你知道要多少次操作,鱼的数量就不会变了嘛?-笔试面试资料

提供最优质的资源集合

立即查看 了解详情