领扣LintCode算法问题答案:1880. 序列中出现X次的最大数字X

    科技2022-08-05  119

    1880. 序列中出现X次的最大数字X

    描述

    给定一个由N个整数组成的序列A,请你输出最大的值X,它恰好在A中出现X次。如果没有这样的值,你应该输出0。

    N是[1…100,000]范围内的整数;序列A的每个元素都是[1…1,000,000,000]范围内的整数。

    样例 1:

    输入: [3,8,2,3,3,2] 输出: 3 说明: 序列中,2正好出现两次,3正好出现三次。且2和3的最大值是3,因此答案是3。

    样例 2:

    输入: [3,1,4,1,5] 输出: 0 说明: 没有满足任务条件的数字,所以答案是0。

    原题传送门


    文章目录

    1880. 序列中出现X次的最大数字X描述样例 1:样例 2: 题解最后说两句声明


    题解

    public class Solution { /** * @param arr: an array of integers * @return: return the biggest value X, which occurs in A exactly X times. */ public int findX(int[] arr) { // write your code here Arrays.sort(arr); int preNum = arr[arr.length - 1]; int preCount = 1; for (int i = arr.length - 2; i >= 0; i--) { int n = arr[i]; if (n == preNum) { preCount++; } else { if (preCount == preNum) { return preNum; } preNum = n; preCount = 1; } } if (preCount == preNum) { return preNum; } return 0; } }

    最后说两句

    非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~

    作者水平有限,如果文章内容有不准确的地方,请指正。

    希望小伙伴们都能每天进步一点点。

    声明

    本文由二当家的白帽子博客原创,转载请注明来源,谢谢~

    Processed: 0.012, SQL: 8