码迷,mamicode.com
首页 > 编程语言 > 详细

Java 刷题(五)

时间:2018-04-29 11:54:49      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:bee   number   图片   can   遍历   day   数字   arrays   nta   

Codewars 刷题第五天,数组问题。

Enough is enough!

Alice and Bob were on a holiday. Both of them took many pictures of the places they‘ve been,

and now they want to show Charlie their entire collection.

However, Charlie doesn‘t like this sessions, since the motive usually repeats.

He isn‘t fond of seeing the Eiffel tower 40 times.

He tells them that he will only sit during the session if they show the same motive at most N times.

Luckily, Alice and Bob are able to encode the motive as a number.

Can you help them to remove numbers such that their list contains each number only up to N times,

without changing the order?

 

Task

Given a list lst and a number N,

create a new list that contains each number of lst at most N times without reordering.

For example if N = 2, and the input is [1,2,3,1,2,1,2,3],

you take [1,2,3,1,2], drop the next [1,2] since this would lead to 1 and 2 being in the result 3 times,

and then take 3, which leads to [1,2,3,1,2,3].

 

Example

EnoughIsEnough.deleteNth(new int[] {20,37,20,21}, 1) // return [20,37,21]

EnoughIsEnough.deleteNth(new int[] {1,1,3,3,7,2,2,2,2}, 3) // return [1, 1, 3, 3, 7, 2, 2, 2]

 题目要求:

  给定数组,给定限制maxOccurrences,数组里的数字的出现次数不得超过限制。然后将数组返回,

对于这种不确定长度的问题还是建议使用Vector(),或者哈希表等。

技术分享图片

此处,用到了两个函数比较巧妙getOrdefault(int,int)Arrays.copyOfRange(int,int,int).很好的解决了遍历中的问题。

 

Java 刷题(五)

标签:bee   number   图片   can   遍历   day   数字   arrays   nta   

原文地址:https://www.cnblogs.com/Jaiken/p/8970304.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!