广州牌手表网站广州做网站平台的企业
广州牌手表网站,广州做网站平台的企业,公司网站一定要备案吗,花生壳做网站题目
题目链接
分析
我们最终形成的数组一定是当前数组nums 中的一个数字。 所以我们的想法就是枚举数组 nums 中的所有数字#xff0c;取最小值。
题目告诉我们每一秒都可以向左右扩散一位#xff0c;那么多个相同的 x 同时扩散#xff0c;扩散完整个数组耗时就取决于两…题目
题目链接
分析
我们最终形成的数组一定是当前数组nums 中的一个数字。 所以我们的想法就是枚举数组 nums 中的所有数字取最小值。
题目告诉我们每一秒都可以向左右扩散一位那么多个相同的 x 同时扩散扩散完整个数组耗时就取决于两个相邻最远的 x 的距离。
假设这两个 x 的下标为 i 和 j且 i j那么耗时就是(j - i) / 2
枚举数组不同的取最小值即为答案。
因为本题中数组被看成环形状所以在计算距离的时候 我们需要将首个元素数组长度再次放入列表中这样就可以处理环形了。
代码
class Solution {public int minimumSeconds(ListInteger nums) {int n nums.size();MapInteger,ListInteger pos new HashMap();for(int i 0;i n;i ) {// 元素,List所有下标pos.computeIfAbsent(nums.get(i),k - new ArrayList()).add(i);}int ans n;for(ListInteger a : pos.values()) {// 将首个位置的索引n考虑了环a.add(a.get(0) n);int mx 0;for(int i 1;i a.size();i ) {// 统计每两个元素之间的最大距离mx Math.max(mx,a.get(i) - a.get(i - 1));}ans Math.min(ans,mx);}return ans / 2;}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/90195.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!